| # |
| # 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 |