diff options
author | Tim Orling <ticotimo@gmail.com> | 2022-01-15 21:29:00 -0800 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2022-01-18 12:53:38 -0800 |
commit | 0e59a23901652a05af068d770551d452655a95b0 (patch) | |
tree | 5fe5f1f7eefcdc168bf83390989550839a49f447 /meta-python | |
parent | 5c7d63a4377f13e6415fa6e72503b072f898d6a8 (diff) | |
download | meta-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.bbclass | 11 |
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 @@ | |||
1 | inherit pyo3 setuptools3 | ||
2 | |||
3 | DEPENDS += "python3-setuptools-rust-native" | ||
4 | |||
5 | setuptools3_rust_do_configure() { | ||
6 | pyo3_do_configure | ||
7 | cargo_common_do_configure | ||
8 | setuptools3_do_configure | ||
9 | } | ||
10 | |||
11 | EXPORT_FUNCTIONS do_configure | ||