mirror of
https://git.yoctoproject.org/poky
synced 2026-05-02 00:32:12 +02:00
ref-manual: document Rust classes
(From yocto-docs rev: 3f3f0ad23f31fb5bb7b550dbe18bbedb1449b3ca) Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
4681a9e6ce
commit
35d919672a
@@ -254,8 +254,68 @@ When inherited globally, prints statistics at the end of the build on
|
||||
sstate re-use. In order to function, this class requires the
|
||||
:ref:`ref-classes-buildstats` class be enabled.
|
||||
|
||||
.. _ref-classes-cargo:
|
||||
|
||||
``cargo``
|
||||
=========
|
||||
|
||||
The :ref:`ref-classes-cargo` class allows to compile Rust language programs
|
||||
using `Cargo <https://doc.rust-lang.org/cargo/>`__. Cargo is Rust's package
|
||||
manager, allowing to fetch package dependencies and build your program.
|
||||
|
||||
Using this class makes it very easy to build Rust programs. All you need
|
||||
is to use the :term:`SRC_URI` variable to point to a source repository
|
||||
which can be built by Cargo, typically one that was created by the
|
||||
``cargo new`` command, containing a ``Cargo.toml`` file and a ``src``
|
||||
subdirectory.
|
||||
|
||||
You will find a simple example in the
|
||||
:oe_git:`rust-hello-world_git.bb </openembedded-core/tree/meta/recipes-extended/rust-example/rust-hello-world_git.bb>`
|
||||
recipe. A more complex example, with package dependencies, is the
|
||||
:oe_git:`uutils-coreutils </meta-openembedded/tree/meta-oe/recipes-core/uutils-coreutils>`
|
||||
recipe, which was generated by the `cargo-bitbake <https://crates.io/crates/cargo-bitbake>`__
|
||||
tool.
|
||||
|
||||
This class inherits the :ref:`ref-classes-cargo_common` class.
|
||||
|
||||
.. _ref-classes-cargo_common:
|
||||
|
||||
``cargo_common``
|
||||
================
|
||||
|
||||
The :ref:`ref-classes-cargo_common` class is an internal class
|
||||
that is not intended to be used directly.
|
||||
|
||||
An exception is the "rust" recipe, to build the Rust compiler and runtime
|
||||
library, which is built by Cargo but cannot use the :ref:`ref-classes-cargo`
|
||||
class. This is why this class was introduced.
|
||||
|
||||
.. _ref-classes-ccache:
|
||||
|
||||
.. _ref-classes-cargo-update-recipe-crates:
|
||||
|
||||
``cargo-update-recipe-crates``
|
||||
===============================
|
||||
|
||||
The :ref:`ref-classes-cargo-update-recipe-crates` class allows
|
||||
recipe developers to update the list of Cargo crates in :term:`SRC_URI`
|
||||
by reading the ``Cargo.lock`` file in the source tree.
|
||||
|
||||
To do so, create a recipe for your program, for example using
|
||||
:doc:`devtool </ref-manual/devtool-reference>`,
|
||||
make it inherit the :ref:`ref-classes-cargo` and
|
||||
:ref:`ref-classes-cargo-update-recipe-crates` and run::
|
||||
|
||||
bitbake -c update_crates recipe
|
||||
|
||||
This creates a ``recipe-crates.inc`` file that you can include in your
|
||||
recipe::
|
||||
|
||||
require ${BPN}-crates.inc
|
||||
|
||||
That's also something you can achieve by using the
|
||||
`cargo-bitbake <https://crates.io/crates/cargo-bitbake>`__ tool.
|
||||
|
||||
``ccache``
|
||||
==========
|
||||
|
||||
@@ -2493,6 +2553,24 @@ For information on how root filesystem images are created, see the
|
||||
":ref:`overview-manual/concepts:image generation`"
|
||||
section in the Yocto Project Overview and Concepts Manual.
|
||||
|
||||
.. _ref-classes-rust:
|
||||
|
||||
``rust``
|
||||
========
|
||||
|
||||
The :ref:`ref-classes-rust` class is an internal class which is just used
|
||||
in the "rust" recipe, to build the Rust compiler and runtime
|
||||
library. Except for this recipe, it is not intended to be used directly.
|
||||
|
||||
.. _ref-classes-rust-common:
|
||||
|
||||
``rust-common``
|
||||
===============
|
||||
|
||||
The :ref:`ref-classes-rust-common` class is an internal class to the
|
||||
:ref:`ref-classes-cargo_common` and :ref:`ref-classes-rust` classes and is not
|
||||
intended to be used directly.
|
||||
|
||||
.. _ref-classes-sanity:
|
||||
|
||||
``sanity``
|
||||
|
||||
Reference in New Issue
Block a user