split rust.bbclass into rust & cargo classes
This commit is contained in:
@@ -68,47 +68,7 @@ RUST_PATH_NATIVE = "${STAGING_LIBDIR_NATIVE}:${STAGING_BASE_LIBDIR_NATIVE}"
|
||||
## This is builtin to rustc with the value "$libdir/rust/targets"
|
||||
# RUST_TARGET_PATH = "foo:bar"
|
||||
|
||||
CARGO = "cargo"
|
||||
|
||||
OECARGO_PATH ??= ""
|
||||
|
||||
oe_runrustc () {
|
||||
bbnote ${RUSTC} ${RUSTC_ARCHFLAGS} ${RUSTC_FLAGS} "$@"
|
||||
"${RUSTC}" ${RUSTC_ARCHFLAGS} ${RUSTC_FLAGS} "$@"
|
||||
}
|
||||
|
||||
oe_cargo_config () {
|
||||
mkdir -p .cargo
|
||||
# FIXME: we currently blow away the entire config because duplicate
|
||||
# sections are treated as a parse error by cargo (causing the entire
|
||||
# config to be silently ignored.
|
||||
# NOTE: we cannot pass more flags via this interface, the 'linker' is
|
||||
# assumed to be a path to a binary. If flags are needed, a wrapper must
|
||||
# be used.
|
||||
echo "paths = [" >.cargo/config
|
||||
|
||||
for p in ${OECARGO_PATH}; do
|
||||
printf "\"%s\" " "$p"
|
||||
done | sed -e 's/[ \n]+/,/g' -e 's/,$//' >>.cargo/config
|
||||
echo "]" >>.cargo/config
|
||||
}
|
||||
|
||||
rust_cargo_patch () {
|
||||
cd "${S}"
|
||||
cat >>Cargo.toml <<EOF
|
||||
[profile.dev]
|
||||
rpath = true
|
||||
[profile.release]
|
||||
rpath = true
|
||||
EOF
|
||||
}
|
||||
|
||||
oe_cargo_build () {
|
||||
# FIXME: if there is already an entry for this target, in an existing
|
||||
# cargo/config, this won't work.
|
||||
which cargo
|
||||
which rustc
|
||||
bbnote ${CARGO} build --target ${TARGET_SYS} "$@"
|
||||
oe_cargo_config
|
||||
"${CARGO}" build -v --target "${TARGET_SYS}" --release "$@"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user