@@ -134,6 +134,18 @@ function(rust_cargo_application)
134134 endif ()
135135 set (BUILD_LIB_DIR "${CMAKE_CURRENT_SOURCE_DIR} /${RUST_TARGET} /${RUST_BUILD_TYPE} " )
136136
137+ if (CONFIG_RUST_NIGHTLY)
138+ set (CARGO_TOOLCHAIN_OVERRIDE "+nightly" )
139+ else ()
140+ set (CARGO_TOOLCHAIN_OVERRIDE "" )
141+ endif ()
142+
143+ if (CONFIG_RUST_BUILD_STD)
144+ set (CARGO_ARGS "-Zbuild-std=core,alloc" )
145+ else ()
146+ set (CARGO_ARGS "" )
147+ endif ()
148+
137149 set (CARGO_TARGET_DIR "${CMAKE_CURRENT_BINARY_DIR} /rust/target" )
138150 set (RUST_LIBRARY "${CARGO_TARGET_DIR} /${RUST_TARGET} /${RUST_BUILD_TYPE} /librustapp.a" )
139151 set (SAMPLE_CARGO_CONFIG "${CMAKE_CURRENT_BINARY_DIR} /rust/sample-cargo-config.toml" )
@@ -214,7 +226,7 @@ ${config_paths}
214226 WRAPPER_FILE="${WRAPPER_FILE} "
215227 DT_AUGMENTS="${DT_AUGMENTS} "
216228 BINARY_DIR_INCLUDE_GENERATED="${BINARY_DIR_INCLUDE_GENERATED} "
217- cargo build
229+ cargo ${CARGO_TOOLCHAIN_OVERRIDE} build
218230 ${rust_build_type_arg}
219231
220232 # Override the features according to the shield given. For a general case,
@@ -228,6 +240,7 @@ ${config_paths}
228240 ${command_paths}
229241 --target ${RUST_TARGET}
230242 --target -dir ${CARGO_TARGET_DIR}
243+ ${CARGO_ARGS}
231244 COMMENT "Building Rust application"
232245 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
233246 )
@@ -258,7 +271,7 @@ ${config_paths}
258271 WRAPPER_FILE="${WRAPPER_FILE} "
259272 DT_AUGMENTS="${DT_AUGMENTS} "
260273 BINARY_DIR_INCLUDE_GENERATED="${BINARY_DIR_INCLUDE_GENERATED} "
261- cargo doc
274+ cargo ${CARGO_TOOLCHAIN_OVERRIDE} doc
262275 ${rust_build_type_arg}
263276
264277 # Override the features according to the shield given. For a general case,
@@ -272,6 +285,7 @@ ${config_paths}
272285 ${command_paths}
273286 --target ${RUST_TARGET}
274287 --target -dir ${CARGO_TARGET_DIR}
288+ ${CARGO_ARGS}
275289 COMMENT "Building Rust documentation"
276290 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
277291 )
0 commit comments