Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 1 | SUMMARY = "Rust standard libaries" |
| 2 | HOMEPAGE = "http://www.rust-lang.org" |
| 3 | SECTION = "devel" |
| 4 | LICENSE = "(MIT | Apache-2.0) & Unicode-TOU" |
Patrick Williams | 864cc43 | 2023-02-09 14:54:44 -0600 | [diff] [blame] | 5 | LIC_FILES_CHKSUM = "file://../../COPYRIGHT;md5=c2cccf560306876da3913d79062a54b9" |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 6 | |
| 7 | require rust-source.inc |
| 8 | |
| 9 | # Building with library/std omits proc_macro from the sysroot. Using |
| 10 | # library/test causes that to be installed which then allows cargo to |
| 11 | # build (https://github.com/meta-rust/meta-rust/issues/266) |
| 12 | S = "${RUSTSRC}/library/test" |
| 13 | |
| 14 | RUSTLIB_DEP = "" |
| 15 | inherit cargo |
| 16 | |
| 17 | DEPENDS:append:libc-musl = " libunwind" |
| 18 | # rv32 does not have libunwind ported yet |
| 19 | DEPENDS:remove:riscv32 = "libunwind" |
| 20 | DEPENDS:remove:riscv64 = "libunwind" |
| 21 | |
| 22 | # Embed bitcode in order to allow compiling both with and without LTO |
| 23 | RUSTFLAGS += "-Cembed-bitcode=yes" |
| 24 | # Needed so cargo can find libbacktrace |
| 25 | RUSTFLAGS += "-L ${STAGING_LIBDIR} -C link-arg=-Wl,-soname,libstd.so" |
| 26 | |
| 27 | CARGO_FEATURES ?= "panic-unwind backtrace" |
| 28 | CARGO_BUILD_FLAGS += "--features '${CARGO_FEATURES}'" |
| 29 | CARGO_VENDORING_DIRECTORY = "${RUSTSRC}/vendor" |
| 30 | |
| 31 | do_compile:prepend () { |
| 32 | export CARGO_TARGET_DIR="${B}" |
| 33 | # For Rust 1.13.0 and newer |
| 34 | export RUSTC_BOOTSTRAP="1" |
| 35 | } |
| 36 | |
| 37 | do_install () { |
| 38 | mkdir -p ${D}${rustlibdir} |
| 39 | |
| 40 | # With the incremental build support added in 1.24, the libstd deps directory also includes dependency |
| 41 | # files that get installed. Those are really only needed to incrementally rebuild the libstd library |
| 42 | # itself and don't need to be installed. |
| 43 | rm -f ${B}/${RUST_TARGET_SYS}/${BUILD_DIR}/deps/*.d |
| 44 | cp ${B}/${RUST_TARGET_SYS}/${BUILD_DIR}/deps/* ${D}${rustlibdir} |
| 45 | } |
| 46 | |
| 47 | BBCLASSEXTEND = "nativesdk" |