]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commitdiff
debug-optimize.inc: override CARGO_BUILD_MODE and CARGO_BUILD_DIR for target
authorHongxu Jia <hongxu.jia@windriver.com>
Mon, 22 Dec 2025 14:54:01 +0000 (22:54 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 22 Jan 2026 16:50:56 +0000 (16:50 +0000)
Rename BUILD_MODE and BUILD_DIR with CARGO prefix, then in debug-optimize.inc,
override CARGO_BUILD_MODE and CARGO_BUILD_DIR for target when debug optimization
is enabled (fragment core/yocto/debug-optimize)

Suggested-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes-recipe/cargo.bbclass
meta/conf/distro/include/debug-optimize.inc
meta/recipes-devtools/rpm-sequoia/rpm-sequoia_1.10.0.bb
meta/recipes-devtools/rust/libstd-rs_1.92.0.bb

index 2dd28e95d33c4187f6f479d3668b5fbea31c475a..eff28b323a168b86c17f74154355beea5998c876 100644 (file)
@@ -31,18 +31,18 @@ B = "${WORKDIR}/build"
 export RUST_BACKTRACE = "1"
 
 RUSTFLAGS ??= ""
-BUILD_MODE = "${@['--release', ''][d.getVar('DEBUG_BUILD') == '1']}"
+CARGO_BUILD_MODE ??= "--release"
 # --frozen flag will prevent network access (which is required since only
 # the do_fetch step is authorized to access network)
 # and will require an up to date Cargo.lock file.
 # This force the package being built to already ship a Cargo.lock, in the end
 # this is what we want, at least, for reproducibility of the build.
-CARGO_BUILD_FLAGS = "-v --frozen --target ${RUST_HOST_SYS} ${BUILD_MODE} --manifest-path=${CARGO_MANIFEST_PATH}"
+CARGO_BUILD_FLAGS = "-v --frozen --target ${RUST_HOST_SYS} ${CARGO_BUILD_MODE} --manifest-path=${CARGO_MANIFEST_PATH}"
 
 # This is based on the content of CARGO_BUILD_FLAGS and generally will need to
 # change if CARGO_BUILD_FLAGS changes.
-BUILD_DIR = "${@['release', 'debug'][d.getVar('DEBUG_BUILD') == '1']}"
-CARGO_TARGET_SUBDIR = "${RUST_HOST_SYS}/${BUILD_DIR}"
+CARGO_BUILD_DIR ??= "release"
+CARGO_TARGET_SUBDIR = "${RUST_HOST_SYS}/${CARGO_BUILD_DIR}"
 oe_cargo_build () {
        export RUSTFLAGS="${RUSTFLAGS}"
        bbnote "Using rust targets from ${RUST_TARGET_PATH}"
index 3f22aebbabe92b1790b2a0384cc2ca9a422529c5..55f35dd7c6b4da55a3a30813ffc6b8757ea331ca 100644 (file)
@@ -43,3 +43,7 @@ CXXFLAGS:append:pn-vulkan-validation-layers = " -DXXH_NO_INLINE_HINTS=1"
 
 # For meson.bbclass
 MESON_BUILDTYPE:class-target ?= "debug"
+
+# For cargo.bbclass
+CARGO_BUILD_MODE:class-target ?= ""
+CARGO_BUILD_DIR:class-target ?= "debug"
index a89ae4f2a65fc3a374e467fc99fff7b40d3235aa..4a954a00c59462fa17056199eea391b78126e936 100644 (file)
@@ -26,7 +26,7 @@ CARGO_INSTALL_LIBRARIES = "1"
 do_compile:prepend () {
        # rpm-sequoia.pc is generated in the source directory
        # but the target directory does not exist there.
-       mkdir -p ${S}/target/${BUILD_DIR}
+       mkdir -p ${S}/target/${CARGO_BUILD_DIR}
 
        # From rpm-sequoia's README.md:
        #
@@ -58,7 +58,7 @@ do_install:append () {
 
        # rpm-sequoia does not install its pkgconfig file. Do it manually.
        mkdir -p ${D}${libdir}/pkgconfig
-       install -m644 ${S}/target/${BUILD_DIR}/rpm-sequoia.pc ${D}${libdir}/pkgconfig
+       install -m644 ${S}/target/${CARGO_BUILD_DIR}/rpm-sequoia.pc ${D}${libdir}/pkgconfig
 }
 
 do_install_ptest:append () {
index 8af93bec579c4074091b299b5d33ca38259d10a8..30875200e41a3a27c2847cb0c0bceb39f6f3b7da 100644 (file)
@@ -44,8 +44,8 @@ do_install () {
     # With the incremental build support added in 1.24, the libstd deps directory also includes dependency
     # files that get installed. Those are really only needed to incrementally rebuild the libstd library
     # itself and don't need to be installed.
-    rm -f ${B}/target/${RUST_TARGET_SYS}/${BUILD_DIR}/deps/*.d
-    cp ${B}/target/${RUST_TARGET_SYS}/${BUILD_DIR}/deps/* ${D}${rustlibdir}
+    rm -f ${B}/target/${RUST_TARGET_SYS}/${CARGO_BUILD_DIR}/deps/*.d
+    cp ${B}/target/${RUST_TARGET_SYS}/${CARGO_BUILD_DIR}/deps/* ${D}${rustlibdir}
 }
 
 BBCLASSEXTEND = "nativesdk"