diff options
Diffstat (limited to 'meta-python')
| -rw-r--r-- | meta-python/classes/pyo3.bbclass | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/meta-python/classes/pyo3.bbclass b/meta-python/classes/pyo3.bbclass new file mode 100644 index 0000000000..6ce21329c2 --- /dev/null +++ b/meta-python/classes/pyo3.bbclass | |||
| @@ -0,0 +1,30 @@ | |||
| 1 | # | ||
| 2 | # This class helps make sure that Python extensions built with PyO3 | ||
| 3 | # and setuptools_rust properly set up the environment for cross compilation | ||
| 4 | # | ||
| 5 | |||
| 6 | inherit cargo python3-dir siteinfo | ||
| 7 | |||
| 8 | export PYO3_CROSS="1" | ||
| 9 | export PYO3_CROSS_PYTHON_VERSION="${PYTHON_BASEVERSION}" | ||
| 10 | export PYO3_CROSS_LIB_DIR="${STAGING_LIBDIR}" | ||
| 11 | export CARGO_BUILD_TARGET="${HOST_SYS}" | ||
| 12 | export RUSTFLAGS | ||
| 13 | export PYO3_PYTHON="${PYTHON}" | ||
| 14 | export PYO3_CONFIG_FILE="${WORKDIR}/pyo3.config" | ||
| 15 | |||
| 16 | pyo3_do_configure () { | ||
| 17 | cat > ${WORKDIR}/pyo3.config << EOF | ||
| 18 | implementation=CPython | ||
| 19 | version=${PYTHON_BASEVERSION} | ||
| 20 | shared=true | ||
| 21 | abi3=false | ||
| 22 | lib_name=${PYTHON_DIR} | ||
| 23 | lib_dir=${STAGING_LIBDIR} | ||
| 24 | pointer_width=${SITEINFO_BITS} | ||
| 25 | build_flags=WITH_THREAD | ||
| 26 | suppress_build_script_link_lines=false | ||
| 27 | EOF | ||
| 28 | } | ||
| 29 | |||
| 30 | EXPORT_FUNCTIONS do_configure | ||
