Fix markdown style issues using markdownlint tool [1]: $ cat ./meta/recipes-devtools/rust/README-rust.md | mdl (stdin):1: MD002 First header should be a top level header (stdin):25: MD006 Consider starting bulleted lists at the beginning of the line (stdin):3: MD009 Trailing spaces (stdin):11: MD009 Trailing spaces (stdin):26: MD009 Trailing spaces (stdin):39: MD012 Multiple consecutive blank lines (stdin):32: MD032 Lists should be surrounded by blank lines (stdin):36: MD032 Lists should be surrounded by blank lines [1] https://github.com/markdownlint/markdownlint (From OE-Core rev: 62bade83dd6e021f11e9599a2699a1b202324f0f) Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
1.4 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
Add the ability to provide build flags for the build-script-build #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.