Update the README to match the current status and remove unclear/obsolete information and fix formatting. (From OE-Core rev: fa5d16692dda655a54653df7b4bf98410090ec5c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
1.3 KiB
Introduction
This provides the Rust compiler, tools for building packages (cargo), and a few example projects.
Building a rust package
When building a rust package in bitbake, it's usually easiest to build with cargo using cargo.bbclass. If the package already has a Cargo.toml file (most rust packages do), then it's especially easy. Otherwise you should probably get the code building in cargo first.
Once your package builds in cargo, you can use cargo-bitbake to generate a bitbake recipe for it. This allows bitbake to fetch all the necessary dependent crates, as well as a pegged version of the crates.io index, to ensure maximum reproducibility. Once the Rust SDK support is added to oe-core, cargo-bitbake may also be added to the SDK.
NOTE: You will have to edit the generated recipe based on the comments contained within it
Pitfalls
- TARGET_SYS must be different from BUILD_SYS. This is due to the way Rust configuration options are tracked for different targets. This is the reason we use the Yocto triples instead of the native Rust triples. See rust-lang/cargo#3349.
Dependencies
On the host:
- Any
-syspackages your project might need must have RDEPENDs for the native library.
On the target:
- Any
-syspackages your project might need must have RDEPENDs for the native library.