1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-04-26 22:52:34 +02:00

bindings/rust: Document the rust bindings

Add an explanation of the two rust libraries, and instructions for
building. Note that the bindings are not included in the tarball.

BUG=None
BRANCH=None
TEST=None

Change-Id: I05b1b5821554f8faee7728f899d51b6e8e9bf5be
Signed-off-by: Evan Benn <evanbenn@chromium.org>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/66618
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Edward O'Callaghan <quasisec@chromium.org>
This commit is contained in:
Evan Benn 2022-08-11 09:32:46 +10:00 committed by Edward O'Callaghan
parent 401d9bfa71
commit 66b34f8ba3
2 changed files with 40 additions and 1 deletions

9
README
View File

@ -39,7 +39,8 @@ page.
it with bzip2.
The snapshot tarballs are the result of 'make tarball' and require no
further processing.
further processing. Some git files (for example the rust bindings) are omitted
from the tarball, as controlled by the .gitattributes files.
Build Instructions
@ -164,6 +165,12 @@ If you are using clang and if you want to enable only one driver, you may hit an
overzealous compiler warning from clang. Compile with "make WARNERROR=no" to
force it to continue and enjoy.
Bindings:
Foreign function interface bindings for the rust language are included in the
bindings folder. These are not compiled as part of the normal build process.
See the readme under bindings/rust for more information.
Installation
------------

32
bindings/rust/README Normal file
View File

@ -0,0 +1,32 @@
-------------------------------------------------------------------------------
flashrom rust bindings README
-------------------------------------------------------------------------------
Included within this folder are rust foreign function interface bindings for the
libflashrom API. libflashrom-sys is an automatically generated binding built
from the header file by the rust `bindgen` utility. It can be used for 'unsafe'
raw access to the libflashrom API. libflashrom is a library built on
libflashrom-sys, exporting a convential rust API.
See the /util/flashrom_tester/flashrom/src/flashromlib.rs file for an example of
usage.
Build Instructions
------------------
A rust toolchain is required, rustup is one source for that: https://rustup.rs/
From within child folders of this directory, where the Cargo.toml files live,
run:
cargo build
cargo test
cargo doc --open
The build process uses pkg-config to find the installed version of libflashrom.
To override the desired version you wish to compile against pkg-config can be
told where to find the desired header and library, for example:
env PKG_CONFIG_PATH=$HOME/src/flashrom/build/install/lib/x86_64-linux-gnu/pkgconfig \
LD_LIBRARY_PATH=$HOME/src/flashrom/build/install/lib/x86_64-linux-gnu \
cargo test