summaryrefslogtreecommitdiffstats
path: root/meta-python
diff options
context:
space:
mode:
authorTim Orling <ticotimo@gmail.com>2022-01-15 21:29:00 -0800
committerKhem Raj <raj.khem@gmail.com>2022-01-18 12:53:38 -0800
commit0e59a23901652a05af068d770551d452655a95b0 (patch)
tree5fe5f1f7eefcdc168bf83390989550839a49f447 /meta-python
parent5c7d63a4377f13e6415fa6e72503b072f898d6a8 (diff)
downloadmeta-openembedded-0e59a23901652a05af068d770551d452655a95b0.tar.gz
setuptools3_rust.bbclass: setuptoools Rust plugin
setuptools-rust is a plugin for setuptools to build Rust Python extensions implemented with PyO3 or rust-cpython. Compile and distribute Python extensions written in Rust as easily as if they were written in C. This class inherits pyo3.bbclass (and therefore cargo.bbclass) and setuptools3.bbclass to make it easier to build Python modules with Rust extensions. Need to call pyo3_do_configure to properly setup the PyO3 environment for cross-compiling. Need to call cargo_common_do_configure to setup cargo_home/config so that the linker properly finds e.g. crti.o and crtbeginS.o It is strongly recommended to provide crates needed for your recipe using the crate:// fetcher. This can be helped with the cargo-bitbake command [1]. If you choose not to use the crate fetcher, bitbake vendoring will not work with setuptools-rust, as it errors out immediately because it cannot find pyo3 or some other crate. The (strongly discouraged) workaround for this is to set: CARGO_DISABLE_BITBAKE_VENDORING = "1" [1] https://crates.io/crates/cargo-bitbake Signed-off-by: Tim Orling <tim.orling@konsulko.com> Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
Diffstat (limited to 'meta-python')
-rw-r--r--meta-python/classes/setuptools3_rust.bbclass11
1 files changed, 11 insertions, 0 deletions
diff --git a/meta-python/classes/setuptools3_rust.bbclass b/meta-python/classes/setuptools3_rust.bbclass
new file mode 100644
index 000000000..fb11f08f8
--- /dev/null
+++ b/meta-python/classes/setuptools3_rust.bbclass
@@ -0,0 +1,11 @@
1inherit pyo3 setuptools3
2
3DEPENDS += "python3-setuptools-rust-native"
4
5setuptools3_rust_do_configure() {
6 pyo3_do_configure
7 cargo_common_do_configure
8 setuptools3_do_configure
9}
10
11EXPORT_FUNCTIONS do_configure