Patrick Williams | 92b42cb | 2022-09-03 06:53:57 -0500 | [diff] [blame^] | 1 | # |
| 2 | # Copyright OpenEmbedded Contributors |
| 3 | # |
| 4 | # SPDX-License-Identifier: MIT |
| 5 | # |
| 6 | |
| 7 | # |
| 8 | # This class helps make sure that Python extensions built with PyO3 |
| 9 | # and setuptools_rust properly set up the environment for cross compilation |
| 10 | # |
| 11 | |
| 12 | inherit cargo python3-dir siteinfo |
| 13 | |
| 14 | export PYO3_CROSS="1" |
| 15 | export PYO3_CROSS_PYTHON_VERSION="${PYTHON_BASEVERSION}" |
| 16 | export PYO3_CROSS_LIB_DIR="${STAGING_LIBDIR}" |
| 17 | export CARGO_BUILD_TARGET="${RUST_HOST_SYS}" |
| 18 | export RUSTFLAGS |
| 19 | export PYO3_PYTHON="${PYTHON}" |
| 20 | export PYO3_CONFIG_FILE="${WORKDIR}/pyo3.config" |
| 21 | |
| 22 | python_pyo3_do_configure () { |
| 23 | cat > ${WORKDIR}/pyo3.config << EOF |
| 24 | implementation=CPython |
| 25 | version=${PYTHON_BASEVERSION} |
| 26 | shared=true |
| 27 | abi3=false |
| 28 | lib_name=${PYTHON_DIR} |
| 29 | lib_dir=${STAGING_LIBDIR} |
| 30 | pointer_width=${SITEINFO_BITS} |
| 31 | build_flags=WITH_THREAD |
| 32 | suppress_build_script_link_lines=false |
| 33 | EOF |
| 34 | } |
| 35 | |
| 36 | EXPORT_FUNCTIONS do_configure |