diff options
4 files changed, 13 insertions, 9 deletions
diff --git a/meta/classes/python_pep517.bbclass b/meta/classes/python_pep517.bbclass index 34ffdc9c0d..7cdb9c8f9d 100644 --- a/meta/classes/python_pep517.bbclass +++ b/meta/classes/python_pep517.bbclass | |||
| @@ -4,17 +4,16 @@ | |||
| 4 | # This class will build a wheel in do_compile, and use pypa/installer to install | 4 | # This class will build a wheel in do_compile, and use pypa/installer to install |
| 5 | # it in do_install. | 5 | # it in do_install. |
| 6 | 6 | ||
| 7 | DEPENDS:append = " python3-installer-native" | 7 | DEPENDS:append = " python3-picobuild-native python3-installer-native" |
| 8 | 8 | ||
| 9 | # Where to execute the build process from | 9 | # Where to execute the build process from |
| 10 | PEP517_SOURCE_PATH ?= "${S}" | 10 | PEP517_SOURCE_PATH ?= "${S}" |
| 11 | 11 | ||
| 12 | # The PEP517 build API entry point | ||
| 13 | PEP517_BUILD_API ?= "unset" | ||
| 14 | |||
| 15 | # The directory where wheels will be written | 12 | # The directory where wheels will be written |
| 16 | PEP517_WHEEL_PATH ?= "${WORKDIR}/dist" | 13 | PEP517_WHEEL_PATH ?= "${WORKDIR}/dist" |
| 17 | 14 | ||
| 15 | PEP517_PICOBUILD_OPTS ?= "" | ||
| 16 | |||
| 18 | # The interpreter to use for installed scripts | 17 | # The interpreter to use for installed scripts |
| 19 | PEP517_INSTALL_PYTHON = "python3" | 18 | PEP517_INSTALL_PYTHON = "python3" |
| 20 | PEP517_INSTALL_PYTHON:class-native = "nativepython3" | 19 | PEP517_INSTALL_PYTHON:class-native = "nativepython3" |
| @@ -31,8 +30,7 @@ python_pep517_do_configure () { | |||
| 31 | # When we have Python 3.11 we can parse pyproject.toml to determine the build | 30 | # When we have Python 3.11 we can parse pyproject.toml to determine the build |
| 32 | # API entry point directly | 31 | # API entry point directly |
| 33 | python_pep517_do_compile () { | 32 | python_pep517_do_compile () { |
| 34 | cd ${PEP517_SOURCE_PATH} | 33 | nativepython3 -m picobuild --source ${PEP517_SOURCE_PATH} --dest ${PEP517_WHEEL_PATH} --wheel ${PEP517_PICOBUILD_OPTS} |
| 35 | nativepython3 -c "import ${PEP517_BUILD_API} as api; api.build_wheel('${PEP517_WHEEL_PATH}')" | ||
| 36 | } | 34 | } |
| 37 | do_compile[cleandirs] += "${PEP517_WHEEL_PATH}" | 35 | do_compile[cleandirs] += "${PEP517_WHEEL_PATH}" |
| 38 | 36 | ||
diff --git a/meta/recipes-devtools/python/python3-flit-core_3.7.1.bb b/meta/recipes-devtools/python/python3-flit-core_3.7.1.bb index abe620374c..fe6b16ac54 100644 --- a/meta/recipes-devtools/python/python3-flit-core_3.7.1.bb +++ b/meta/recipes-devtools/python/python3-flit-core_3.7.1.bb | |||
| @@ -13,7 +13,7 @@ SRC_URI[sha256sum] = "3c9bd9c140515bfe62dd938c6610d10d6efb9e35cc647fc614fe5fb3a5 | |||
| 13 | inherit pypi python_flit_core | 13 | inherit pypi python_flit_core |
| 14 | 14 | ||
| 15 | # Need to install by hand as there's a dependency loop | 15 | # Need to install by hand as there's a dependency loop |
| 16 | DEPENDS:remove:class-native = " python3-installer-native" | 16 | DEPENDS:remove:class-native = " python3-picobuild-native python3-installer-native" |
| 17 | DEPENDS:append:class-native = " unzip-native" | 17 | DEPENDS:append:class-native = " unzip-native" |
| 18 | 18 | ||
| 19 | # We need the full flit tarball | 19 | # We need the full flit tarball |
diff --git a/meta/recipes-devtools/python/python3-installer_0.5.1.bb b/meta/recipes-devtools/python/python3-installer_0.5.1.bb index b7780702d6..07bbafa81f 100644 --- a/meta/recipes-devtools/python/python3-installer_0.5.1.bb +++ b/meta/recipes-devtools/python/python3-installer_0.5.1.bb | |||
| @@ -12,11 +12,15 @@ SRC_URI[sha256sum] = "f970995ec2bb815e2fdaf7977b26b2091e1e386f0f42eafd5ac811953d | |||
| 12 | 12 | ||
| 13 | inherit pypi python_flit_core | 13 | inherit pypi python_flit_core |
| 14 | 14 | ||
| 15 | # Bootstrap the native install by installing with ourself | 15 | # Bootstrap the native build |
| 16 | DEPENDS:remove:class-native = "python3-installer-native" | 16 | DEPENDS:remove:class-native = "python3-picobuild-native python3-installer-native" |
| 17 | 17 | ||
| 18 | INSTALL_WHEEL_COMPILE_BYTECODE:class-native = "--no-compile-bytecode" | 18 | INSTALL_WHEEL_COMPILE_BYTECODE:class-native = "--no-compile-bytecode" |
| 19 | 19 | ||
| 20 | do_compile:class-native () { | ||
| 21 | python_flit_core_do_manual_build | ||
| 22 | } | ||
| 23 | |||
| 20 | do_install:prepend:class-native() { | 24 | do_install:prepend:class-native() { |
| 21 | export PYTHONPATH="${S}/src" | 25 | export PYTHONPATH="${S}/src" |
| 22 | } | 26 | } |
diff --git a/meta/recipes-devtools/python/python3-picobuild_0.1.bb b/meta/recipes-devtools/python/python3-picobuild_0.1.bb index 7555d97f91..3c92b079f3 100644 --- a/meta/recipes-devtools/python/python3-picobuild_0.1.bb +++ b/meta/recipes-devtools/python/python3-picobuild_0.1.bb | |||
| @@ -18,4 +18,6 @@ S = "${WORKDIR}/git" | |||
| 18 | 18 | ||
| 19 | inherit python_flit_core | 19 | inherit python_flit_core |
| 20 | 20 | ||
| 21 | DEPENDS:remove:class-native = "python3-picobuild-native" | ||
| 22 | |||
| 21 | BBCLASSEXTEND = "native nativesdk" | 23 | BBCLASSEXTEND = "native nativesdk" |
