python_pep517: use python3-build, not picobuild

Now that the bootstrap sequence for pypa/build is just
python3-packaging, and python3-pyproject-hooks, we can use build instead
of picobuild.

The only change visible outside of this class is that the variable
PEP517_PICOBUILD_OPTS is now PEP517_BUILD_OPTS, but I'm only aware of one
recipe that used that variable.

(From OE-Core rev: 202c2e3c9481a8841af2556862a76e27d703246d)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton
2023-01-12 11:23:35 +00:00
committed by Richard Purdie
parent 1faf47e9e6
commit adedac2b33
6 changed files with 30 additions and 6 deletions

View File

@@ -10,7 +10,7 @@
# This class will build a wheel in do_compile, and use pypa/installer to install
# it in do_install.
DEPENDS:append = " python3-picobuild-native python3-installer-native"
DEPENDS:append = " python3-build-native python3-installer-native"
# Where to execute the build process from
PEP517_SOURCE_PATH ?= "${S}"
@@ -18,7 +18,8 @@ PEP517_SOURCE_PATH ?= "${S}"
# The directory where wheels will be written
PEP517_WHEEL_PATH ?= "${WORKDIR}/dist"
PEP517_PICOBUILD_OPTS ?= ""
# Other options to pass to build
PEP517_BUILD_OPTS ?= ""
# The interpreter to use for installed scripts
PEP517_INSTALL_PYTHON = "python3"
@@ -36,7 +37,7 @@ python_pep517_do_configure () {
# When we have Python 3.11 we can parse pyproject.toml to determine the build
# API entry point directly
python_pep517_do_compile () {
nativepython3 -m picobuild --source ${PEP517_SOURCE_PATH} --dest ${PEP517_WHEEL_PATH} --wheel ${PEP517_PICOBUILD_OPTS}
nativepython3 -m build --no-isolation --wheel --outdir ${PEP517_WHEEL_PATH} ${PEP517_SOURCE_PATH} ${PEP517_BUILD_OPTS}
}
do_compile[cleandirs] += "${PEP517_WHEEL_PATH}"

View File

@@ -7,7 +7,16 @@ SRC_URI[sha256sum] = "d5b71264afdb5951d6704482aac78de887c80691c52b88a9ad195983ca
inherit pypi python_flit_core
DEPENDS += "python3-packaging-native python3-pyproject-hooks-native"
DEPENDS += "python3-pyproject-hooks-native"
DEPENDS:remove:class-native = "python3-build-native"
# Skip dependencies as we're doing a minimal build to bootstrap
PEP517_BUILD_OPTS:class-native = "--skip-dependency-check"
do_compile:prepend:class-native() {
export PYTHONPATH="${S}/src"
}
RDEPENDS:${PN} += "python3-packaging python3-pyproject-hooks"

View File

@@ -13,7 +13,7 @@ SRC_URI[sha256sum] = "d0f2a8f4bd45dc794befbf5839ecc0fd3830d65a57bd52b5997542fac5
inherit pypi python_flit_core
# Need to install by hand as there's a dependency loop
DEPENDS:remove:class-native = " python3-picobuild-native python3-installer-native"
DEPENDS:remove:class-native = " python3-build-native python3-installer-native"
DEPENDS:append:class-native = " unzip-native"
# We need the full flit tarball

View File

@@ -13,7 +13,7 @@ SRC_URI[sha256sum] = "f3bd36cd261b440a88a1190b1becca0578fee90b4b62decc796932fdd5
inherit pypi python_flit_core
# Bootstrap the native build
DEPENDS:remove:class-native = "python3-picobuild-native python3-installer-native"
DEPENDS:remove:class-native = "python3-build-native python3-installer-native"
INSTALL_WHEEL_COMPILE_BYTECODE:class-native = "--no-compile-bytecode"

View File

@@ -8,3 +8,10 @@ SRC_URI[sha256sum] = "2198ec20bd4c017b8f9717e00f0c8714076fc2fd93816750ab48e2c41d
inherit pypi python_flit_core
BBCLASSEXTEND = "native nativesdk"
# Bootstrap the native build
DEPENDS:remove:class-native = "python3-build-native"
do_compile:class-native () {
python_flit_core_do_manual_build
}

View File

@@ -10,3 +10,10 @@ inherit pypi python_flit_core
PYPI_PACKAGE = "pyproject_hooks"
BBCLASSEXTEND = "native nativesdk"
# Bootstrap the native build
DEPENDS:remove:class-native = "python3-build-native"
do_compile:class-native () {
python_flit_core_do_manual_build
}