Andrew Geissler | 9aee500 | 2022-03-30 16:27:02 +0000 | [diff] [blame] | 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 | python_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 |