split rust.bbclass into rust & cargo classes

This commit is contained in:
Cody P Schafer
2014-11-21 12:11:28 -05:00
parent fd26b2e1bb
commit 4b75f09945
3 changed files with 62 additions and 56 deletions

View File

@@ -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 "$@"
}