Files
poky/meta/recipes-devtools/rust/rust_1.62.0.bb
Richard Purdie 16b4ac3f55 rust: Enable nativesdk and target builds + replace rust-tools-cross-canadian
Enable rust target builds as well as nativesdk-rust for the sdk. Merge
the builds of rust-tools components into the rust build, packaged separately
since this is a lot more efficient and saves rebuilding core rust multiple
times. The tools are not target specific so nativesdk-rust-tools suffices
and we can drop the cross canadian piece.

(From OE-Core rev: b9b0cd99cdc77e7a90e5fd5711e706ebe64c7b6b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-08 15:44:20 +01:00

83 lines
2.4 KiB
BlitzBasic

require rust-target.inc
require rust-source.inc
require rust-snapshot.inc
INSANE_SKIP:${PN}:class-native = "already-stripped"
FILES:${PN} += "${libdir}/rustlib"
FILES:${PN} += "${libdir}/*.so"
FILES:${PN}-dev = ""
do_compile () {
rust_runx build --stage 2
}
do_compile:append:class-target () {
rust_runx build --stage 2 src/tools/clippy
rust_runx build --stage 2 src/tools/rustfmt
}
do_compile:append:class-nativesdk () {
rust_runx build --stage 2 src/tools/clippy
rust_runx build --stage 2 src/tools/rustfmt
}
ALLOW_EMPTY:${PN} = "1"
PACKAGES =+ "${PN}-tools-clippy ${PN}-tools-rustfmt"
FILES:${PN}-tools-clippy = "${bindir}/cargo-clippy ${bindir}/clippy-driver"
FILES:${PN}-tools-rustfmt = "${bindir}/rustfmt"
RDEPENDS:${PN}-tools-clippy = "${PN}"
RDEPENDS:${PN}-tools-rustfmt = "${PN}"
SUMMARY:${PN}-tools-clippy = "A collection of lints to catch common mistakes and improve your Rust code"
SUMMARY:${PN}-tools-rustfmt = "A tool for formatting Rust code according to style guidelines"
rust_do_install() {
rust_runx install
}
rust_do_install:class-nativesdk() {
export PSEUDO_UNLOAD=1
rust_runx install
unset PSEUDO_UNLOAD
install -d ${D}${bindir}
for i in cargo-clippy clippy-driver rustfmt; do
cp build/${RUST_BUILD_SYS}/stage2-tools-bin/$i ${D}${bindir}
chrpath -r "\$ORIGIN/../lib" ${D}${bindir}/$i
done
chown root:root ${D}/ -R
rm ${D}${libdir}/rustlib/uninstall.sh
rm ${D}${libdir}/rustlib/install.log
rm ${D}${libdir}/rustlib/manifest*
}
rust_do_install:class-target() {
export PSEUDO_UNLOAD=1
rust_runx install
unset PSEUDO_UNLOAD
install -d ${D}${bindir}
for i in cargo-clippy clippy-driver rustfmt; do
cp build/${RUST_BUILD_SYS}/stage2-tools-bin/$i ${D}${bindir}
chrpath -r "\$ORIGIN/../lib" ${D}${bindir}/$i
done
chown root:root ${D}/ -R
rm ${D}${libdir}/rustlib/uninstall.sh
rm ${D}${libdir}/rustlib/install.log
rm ${D}${libdir}/rustlib/manifest*
}
# see recipes-devtools/gcc/gcc/0018-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
# we need to link with ssp_nonshared on musl to avoid "undefined reference to `__stack_chk_fail_local'"
# when building MACHINE=qemux86 for musl
WRAPPER_TARGET_EXTRALD:libc-musl = "-lssp_nonshared"
RUSTLIB_DEP:class-nativesdk = ""
# musl builds include libunwind.a
INSANE_SKIP:${PN} = "staticdev"