mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 12:59:02 +02:00
classes-recipe: add cargo_c.bbclass
This class can be used inside rust recipe to generate a rust library that can be called by C/C++ code. The rust recipe which uses this class has to only replace "inherit cargo" by "inherit cargo_c". (From OE-Core rev: 1e4862db1d6293872b76b62acee1e4a5e2597367) Signed-off-by: Frederic Martinsons <frederic.martinsons@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
ed5702223b
commit
c318d1914e
41
meta/classes-recipe/cargo_c.bbclass
Normal file
41
meta/classes-recipe/cargo_c.bbclass
Normal file
|
@ -0,0 +1,41 @@
|
|||
#
|
||||
# Copyright OpenEmbedded Contributors
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
|
||||
##
|
||||
## Purpose:
|
||||
## This class is used by any recipes that want to compile a C ABI compatible
|
||||
## library with header and pkg config file
|
||||
|
||||
inherit cargo pkgconfig
|
||||
|
||||
# the binaries we will use
|
||||
CARGO_C_BUILD = "cargo-cbuild"
|
||||
CARGO_C_INSTALL = "cargo-cinstall"
|
||||
|
||||
# We need cargo-c to compile for the target
|
||||
BASEDEPENDS:append = " cargo-c-native"
|
||||
|
||||
do_compile[progress] = "outof:\s+(\d+)/(\d+)"
|
||||
cargo_c_do_compile() {
|
||||
oe_cargo_fix_env
|
||||
export RUSTFLAGS="${RUSTFLAGS}"
|
||||
bbnote "Using rust targets from ${RUST_TARGET_PATH}"
|
||||
bbnote "cargo-cbuild = $(which ${CARGO_C_BUILD})"
|
||||
bbnote "${CARGO_C_BUILD} cbuild ${CARGO_BUILD_FLAGS}"
|
||||
"${CARGO_C_BUILD}" cbuild ${CARGO_BUILD_FLAGS}
|
||||
}
|
||||
|
||||
cargo_c_do_install() {
|
||||
oe_cargo_fix_env
|
||||
export RUSTFLAGS="${RUSTFLAGS}"
|
||||
bbnote "cargo-cinstall = $(which ${CARGO_C_INSTALL})"
|
||||
"${CARGO_C_INSTALL}" cinstall ${CARGO_BUILD_FLAGS} \
|
||||
--destdir ${D} \
|
||||
--prefix ${prefix} \
|
||||
--library-type cdylib
|
||||
}
|
||||
|
||||
EXPORT_FUNCTIONS do_compile do_install
|
Loading…
Reference in New Issue
Block a user