rust.cmake: fixups

- add a default TARGET argument for RustAddLibrary and remove TARGET
  params from the calls--we were already overriding any specified
  TARGET and all the specified TARGETS had bitrot'd
- make CARGO_OPTIONS a CACHE variable so it's scope-independent and
  set the variable to avoid duplicate options (which cargo rejects)

Change-Id: I37eaa421d99834deeb87242aa9acea7e49bed8e3
GitOrigin-RevId: c667372e2961cd052b358abce9602cc888e46daf
This commit is contained in:
Sam Leffler 2021-12-14 20:16:25 +00:00
parent 840c348e94
commit 36f2577a40
2 changed files with 7 additions and 8 deletions

View File

@ -22,7 +22,6 @@ include(${CMAKE_CURRENT_LIST_DIR}/rust.cmake)
RustAddLibrary( RustAddLibrary(
kata_debug_console kata_debug_console
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/components/DebugConsole SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/components/DebugConsole
TARGET "riscv32imc-unknown-none-elf"
LIB_FILENAME libkata_debug_console.a LIB_FILENAME libkata_debug_console.a
) )
@ -34,7 +33,6 @@ DeclareCAmkESComponent(DebugConsole
RustAddLibrary( RustAddLibrary(
kata_process_manager kata_process_manager
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/components/ProcessManager SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/components/ProcessManager
TARGET "riscv32imc-unknown-none-elf"
LIB_FILENAME libkata_process_manager.a LIB_FILENAME libkata_process_manager.a
) )
@ -46,7 +44,6 @@ DeclareCAmkESComponent(ProcessManager
RustAddLibrary( RustAddLibrary(
kata_ml_coordinator kata_ml_coordinator
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/components/MlCoordinator SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/components/MlCoordinator
TARGET "riscv32imc-unknown-none-elf"
LIB_FILENAME libkata_ml_coordinator.a LIB_FILENAME libkata_ml_coordinator.a
) )
@ -58,7 +55,6 @@ DeclareCAmkESComponent(MlCoordinator
RustAddLibrary( RustAddLibrary(
kata_security_coordinator kata_security_coordinator
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/components/SecurityCoordinator SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/components/SecurityCoordinator
TARGET "riscv32imc-unknown-none-elf"
LIB_FILENAME libkata_security_coordinator.a LIB_FILENAME libkata_security_coordinator.a
) )
@ -70,7 +66,6 @@ DeclareCAmkESComponent(SecurityCoordinator
RustAddLibrary( RustAddLibrary(
kata_storage_manager kata_storage_manager
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/components/StorageManager SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/components/StorageManager
TARGET "riscv32imc-unknown-none-elf"
LIB_FILENAME libkata_storage_manager.a LIB_FILENAME libkata_storage_manager.a
) )

View File

@ -11,10 +11,10 @@ include_guard(GLOBAL)
# NB: we cannot use CARGO_OPTIONS, cargo will strip it out # NB: we cannot use CARGO_OPTIONS, cargo will strip it out
set(RUSTFLAGS "-Z tls-model=local-exec" CACHE INTERNAL "rustc env flags") set(RUSTFLAGS "-Z tls-model=local-exec" CACHE INTERNAL "rustc env flags")
list(APPEND CARGO_OPTIONS set(CARGO_OPTIONS
--target riscv32imac-unknown-none-elf
-Z unstable-options -Z unstable-options
-Z avoid-dev-deps) -Z avoid-dev-deps
CACHE INTERNAL "cargo cmd line arguments")
if("${RELEASE}") if("${RELEASE}")
list(APPEND CARGO_OPTIONS "--release") list(APPEND CARGO_OPTIONS "--release")
@ -42,6 +42,9 @@ function(RustAddLibrary lib_name)
if("${RUST_BUILD_DIR}" STREQUAL "") if("${RUST_BUILD_DIR}" STREQUAL "")
set(RUST_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}) set(RUST_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR})
endif() endif()
if("${RUST_TARGET}" STREQUAL "")
set(RUST_TARGET "riscv32imac-unknown-none-elf")
endif()
add_custom_target( add_custom_target(
${lib_name}_custom ${lib_name}_custom
@ -53,6 +56,7 @@ function(RustAddLibrary lib_name)
COMMAND COMMAND
${CMAKE_COMMAND} -E env RUSTFLAGS=${RUSTFLAGS} ${CMAKE_COMMAND} -E env RUSTFLAGS=${RUSTFLAGS}
cargo +nightly-2021-08-05 build cargo +nightly-2021-08-05 build
--target ${RUST_TARGET}
${CARGO_OPTIONS} ${CARGO_OPTIONS}
--target-dir ${RUST_BUILD_DIR} --target-dir ${RUST_BUILD_DIR}
--out-dir ${RUST_BUILD_DIR} --out-dir ${RUST_BUILD_DIR}