diff --git a/Mk/Uses/python.mk b/Mk/Uses/python.mk --- a/Mk/Uses/python.mk +++ b/Mk/Uses/python.mk @@ -153,7 +153,7 @@ # default: ${PYTHONBASE}/bin/${PYTHON_VERSION} # # PEP517_BUILD_CMD - Command sequence for a PEP-517 build frontend that builds a wheel. -# default: ${PYTHON_CMD} -m build --no-isolation --wheel ${PEP517_BUILD_CONFIG_SETTING} +# default: ${PYTHON_CMD} -m build --no-isolation --wheel --outdir ${WRKDIR}/whl ${PEP517_BUILD_CONFIG_SETTING} # # PEP517_BUILD_DEPEND - Port needed to execute ${PEP517_BUILD_CMD}. # default: ${PYTHON_PKGNAMEPREFIX}build>=0:devel/py-build@${PY_FLAVOR} @@ -163,7 +163,7 @@ # default: # # PEP517_INSTALL_CMD - Command sequence for a PEP-517 install frontend that installs a wheel. -# default: ${PYTHON_CMD} -m installer --destdir ${STAGEDIR} --prefix ${PREFIX} ${BUILD_WRKSRC}/dist/${PORTNAME:C|[-_]+|_|g}-${DISTVERSION}*.whl +# default: ${PYTHON_CMD} -m installer --destdir ${STAGEDIR} --prefix ${PREFIX} ${WRKDIR}/whl/${PORTNAME:C|[-_]+|_|g}-${DISTVERSION}*.whl # # PEP517_INSTALL_DEPEND - Port needed to execute ${PEP517_INSTALL_CMD}. # default: ${PYTHON_PKGNAMEPREFIX}installer>=0:devel/py-installer@${PY_FLAVOR} @@ -188,6 +188,10 @@ # - Pass this command to distutils on build stage. # default: build # +# PYDISTUTILS_BUILD_WHEEL_TARGET +# - Pass this command to distutils on build wheel stage. +# default: bdist_wheel +# # PYDISTUTILS_INSTALL_TARGET # - Pass this command to distutils on install stage. # default: install @@ -200,6 +204,10 @@ # - Arguments to build with distutils. # default: # +# PYDISTUTILS_BUILDWHEELARGS +# - Arguments to build wheel with distutils. +# default: --dist-dir ${WRKDIR}/whl +# # PYDISTUTILS_INSTALLARGS # - Arguments to install with distutils. # default: -c -O1 --prefix=${PREFIX} --single-version-externally-managed --root=${STAGEDIR} @@ -709,12 +717,14 @@ . if defined(_PYTHON_FEATURE_DISTUTILS) && \ ${_CURRENTPORT} != ${PYTHON_PKGNAMEPREFIX}setuptools && \ ${_CURRENTPORT} != ${PYTHON_PKGNAMEPREFIX}setuptools58 && \ - ${_CURRENTPORT} != ${PYTHON_PKGNAMEPREFIX}setuptools44 + ${_CURRENTPORT} != ${PYTHON_PKGNAMEPREFIX}setuptools44 && \ + ${_CURRENTPORT} != ${PYTHON_PKGNAMEPREFIX}wheel . if ${PYTHON_VER} == 2.7 BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}setuptools44>0:devel/py-setuptools44@${PY_FLAVOR} RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}setuptools44>0:devel/py-setuptools44@${PY_FLAVOR} . else BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}setuptools>=63.1.0:devel/py-setuptools@${PY_FLAVOR} +BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} . endif . endif @@ -741,6 +751,7 @@ exec(compile(open(__file__, 'rb').read().replace(b'\\r\\n', b'\\n'), __file__, 'exec'))" PYDISTUTILS_CONFIGUREARGS?= # empty PYDISTUTILS_BUILDARGS?= # empty +PYDISTUTILS_BUILDWHEELARGS?= --dist-dir ${WRKDIR}/whl PYDISTUTILS_INSTALLARGS?= -c -O1 --prefix=${PREFIX} . if defined(_PYTHON_FEATURE_DISTUTILS) . if !defined(PYDISTUTILS_INSTALLNOSINGLE) @@ -751,15 +762,17 @@ PYDISTUTILS_INSTALLARGS:= --record ${_PYTHONPKGLIST} \ ${PYDISTUTILS_INSTALLARGS} +PYDISTUTILS_INSTALL_WHEEL_CMD?= ${INSTALL_DATA} ${BUILD_WRKSRC}/dist/*.whl ${PYTHON_WHEELSDIR} + PYDISTUTILS_PKGNAME?= ${PORTNAME} PYDISTUTILS_PKGVERSION?=${PORTVERSION} PYDISTUTILS_EGGINFO?= ${PYDISTUTILS_PKGNAME:C/[^A-Za-z0-9.]+/_/g}-${PYDISTUTILS_PKGVERSION:C/[^A-Za-z0-9.]+/_/g}-py${PYTHON_VER}.egg-info PYDISTUTILS_EGGINFODIR?=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} # PEP-517 support -PEP517_BUILD_CMD?= ${PYTHON_CMD} -m build --no-isolation --wheel ${PEP517_BUILD_CONFIG_SETTING} +PEP517_BUILD_CMD?= ${PYTHON_CMD} -m build --no-isolation --wheel --outdir ${WRKDIR}/whl ${PEP517_BUILD_CONFIG_SETTING} PEP517_BUILD_DEPEND?= ${PYTHON_PKGNAMEPREFIX}build>=0:devel/py-build@${PY_FLAVOR} -PEP517_INSTALL_CMD?= ${PYTHON_CMD} -m installer --destdir ${STAGEDIR} --prefix ${PREFIX} ${BUILD_WRKSRC}/dist/${PORTNAME:C|[-_]+|_|g}-${DISTVERSION}*.whl +PEP517_INSTALL_CMD?= ${PYTHON_CMD} -m installer --destdir ${STAGEDIR} --prefix ${PREFIX} ${WRKDIR}/whl/${PORTNAME:C|[-_]+|_|g}-${DISTVERSION}*.whl PEP517_INSTALL_DEPEND?= ${PYTHON_PKGNAMEPREFIX}installer>=0:devel/py-installer@${PY_FLAVOR} # nose support @@ -944,6 +957,7 @@ # py-distutils support PYDISTUTILS_CONFIGURE_TARGET?= config PYDISTUTILS_BUILD_TARGET?= build +PYDISTUTILS_BUILD_WHEEL_TARGET?= bdist_wheel PYDISTUTILS_INSTALL_TARGET?= install . if defined(_PYTHON_FEATURE_DISTUTILS) @@ -958,6 +972,7 @@ . if !target(do-build) do-build: @(cd ${BUILD_WRKSRC}; ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${PYTHON_CMD} ${PYDISTUTILS_SETUP} ${PYDISTUTILS_BUILD_TARGET} ${PYDISTUTILS_BUILDARGS}) + @(cd ${BUILD_WRKSRC}; ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${PYTHON_CMD} ${PYDISTUTILS_SETUP} ${PYDISTUTILS_BUILD_WHEEL_TARGET} ${PYDISTUTILS_BUILDWHEELARGS}) . endif . if !target(do-install) diff --git a/devel/py-build/Makefile b/devel/py-build/Makefile --- a/devel/py-build/Makefile +++ b/devel/py-build/Makefile @@ -23,7 +23,7 @@ NO_ARCH= yes -PEP517_BUILD_CMD= ${PYTHON_CMD} -m flit_core.wheel +PEP517_BUILD_CMD= ${PYTHON_CMD} -m flit_core.wheel --outdir ${WRKDIR}/whl PEP517_BUILD_DEPEND= ${PYTHON_PKGNAMEPREFIX}flit-core>=3.8:devel/py-flit-core@${PY_FLAVOR} #OPTIONS_DEFINE= VIRTUALENV diff --git a/devel/py-flit-core/Makefile b/devel/py-flit-core/Makefile --- a/devel/py-flit-core/Makefile +++ b/devel/py-flit-core/Makefile @@ -20,9 +20,9 @@ NO_ARCH= yes -PEP517_BUILD_CMD= ${PYTHON_CMD} -m flit_core.wheel +PEP517_BUILD_CMD= ${PYTHON_CMD} -m flit_core.wheel --outdir ${WRKDIR}/whl PEP517_BUILD_DEPEND= # empty -PEP517_INSTALL_CMD= ${PYTHON_CMD} ${WRKSRC}/bootstrap_install.py --installdir ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} ${WRKSRC}/dist/${DISTNAME}*.whl +PEP517_INSTALL_CMD= ${PYTHON_CMD} ${WRKSRC}/bootstrap_install.py --installdir ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} ${WRKDIR}/whl/${DISTNAME}*.whl PEP517_INSTALL_DEPEND= # empty post-install: diff --git a/devel/py-installer/Makefile b/devel/py-installer/Makefile --- a/devel/py-installer/Makefile +++ b/devel/py-installer/Makefile @@ -18,7 +18,7 @@ MAKE_ENV= PYTHONPATH=${WRKSRC}/src NO_ARCH= yes -PEP517_BUILD_CMD= ${PYTHON_CMD} -m flit_core.wheel +PEP517_BUILD_CMD= ${PYTHON_CMD} -m flit_core.wheel --outdir ${WRKDIR}/whl PEP517_BUILD_DEPEND= ${PYTHON_PKGNAMEPREFIX}flit-core>=3.2.0<4:devel/py-flit-core@${PY_FLAVOR} PEP517_INSTALL_DEPEND= # empty diff --git a/devel/py-packaging/Makefile b/devel/py-packaging/Makefile --- a/devel/py-packaging/Makefile +++ b/devel/py-packaging/Makefile @@ -19,7 +19,7 @@ NO_ARCH= yes -PEP517_BUILD_CMD= ${PYTHON_CMD} -m flit_core.wheel +PEP517_BUILD_CMD= ${PYTHON_CMD} -m flit_core.wheel --outdir ${WRKDIR}/whl PEP517_BUILD_DEPEND= ${PYTHON_PKGNAMEPREFIX}flit-core>=3.3:devel/py-flit-core@${PY_FLAVOR} .include diff --git a/devel/py-pyproject-hooks/Makefile b/devel/py-pyproject-hooks/Makefile --- a/devel/py-pyproject-hooks/Makefile +++ b/devel/py-pyproject-hooks/Makefile @@ -18,7 +18,7 @@ NO_ARCH= yes -PEP517_BUILD_CMD= ${PYTHON_CMD} -m flit_core.wheel +PEP517_BUILD_CMD= ${PYTHON_CMD} -m flit_core.wheel --outdir ${WRKDIR}/whl PEP517_BUILD_DEPEND= ${PYTHON_PKGNAMEPREFIX}flit-core>=3.2<4:devel/py-flit-core@${PY_FLAVOR} .include diff --git a/textproc/py-pallets-sphinx-themes/Makefile b/textproc/py-pallets-sphinx-themes/Makefile --- a/textproc/py-pallets-sphinx-themes/Makefile +++ b/textproc/py-pallets-sphinx-themes/Makefile @@ -22,7 +22,7 @@ USE_PYTHON= autoplist concurrent pep517 PEP517_INSTALL_CMD= ${PYTHON_CMD} -m installer --destdir ${STAGEDIR} \ --prefix ${PREFIX} \ - ${BUILD_WRKSRC}/dist/${PORTNAME:C|[-_]+|_|g:tl}-${DISTVERSION}*.whl + ${WRKDIR}/whl/${PORTNAME:C|[-_]+|_|g:tl}-${DISTVERSION}*.whl NO_ARCH= yes diff --git a/textproc/py-tomli/Makefile b/textproc/py-tomli/Makefile --- a/textproc/py-tomli/Makefile +++ b/textproc/py-tomli/Makefile @@ -16,7 +16,7 @@ NO_ARCH= yes -PEP517_BUILD_CMD= ${PYTHON_CMD} -m flit_core.wheel +PEP517_BUILD_CMD= ${PYTHON_CMD} -m flit_core.wheel --outdir ${WRKDIR}/whl PEP517_BUILD_DEPEND= ${PYTHON_PKGNAMEPREFIX}flit-core>=3.12<4:devel/py-flit-core@${PY_FLAVOR} .include