diff options
Diffstat (limited to 'fw/CMakeLists.txt')
-rw-r--r-- | fw/CMakeLists.txt | 41 |
1 files changed, 29 insertions, 12 deletions
diff --git a/fw/CMakeLists.txt b/fw/CMakeLists.txt index 5b1e42b..aa5af1c 100644 --- a/fw/CMakeLists.txt +++ b/fw/CMakeLists.txt @@ -4,28 +4,45 @@ cmake_minimum_required(VERSION 3.20.0) +include(ExternalProject) + set(KEY_DEFAULT "$ENV{HOME}/mcuboot/key.pem") set(KEY ${KEY_DEFAULT} CACHE STRING "Firmware signing key path") message(STATUS "Firmware signing key path: ${KEY}") -set(BOARD "native_sim/native/64") -add_subdirectory(rtos) +set(BOARD_DEFAULT "native_sim/native/64") +set(BOARD ${BOARD_DEFAULT} CACHE STRING "Zephyr board identifier") +message(STATUS "Selected board: ${BOARD}") +add_subdirectory(rtos) string(REPLACE ";" "," ZEPHYR_MODULES_COMMA "${ZEPHYR_MODULES}") -include(ExternalProject) + +if(BOARD STREQUAL "nucleo_f767zi") + ExternalProject_Add( + btl + PREFIX btl + SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/rtos/modules/mcuboot/boot/zephyr" + BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/btl" + INSTALL_COMMAND "" + LIST_SEPARATOR "," + CMAKE_ARGS + "-DBOARD=${BOARD}" + "-DZEPHYR_BASE=${ZEPHYR_BASE}" + "-DZEPHYR_MODULES=${ZEPHYR_MODULES_COMMA}" + "-DEXTRA_CONF_FILE=${CMAKE_CURRENT_SOURCE_DIR}/btl/bootloader.conf" + -DCONFIG_BOOT_SIGNATURE_KEY_FILE="${KEY}" + ) +endif() + ExternalProject_Add( - btl - PREFIX btl - SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/rtos/modules/mcuboot/boot/zephyr" - BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/btl" + app + PREFIX app + SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/app" + BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/app" INSTALL_COMMAND "" LIST_SEPARATOR "," CMAKE_ARGS - "-DBOARD=nucleo_f767zi" + "-DBOARD=${BOARD}" "-DZEPHYR_BASE=${ZEPHYR_BASE}" "-DZEPHYR_MODULES=${ZEPHYR_MODULES_COMMA}" - "-DEXTRA_CONF_FILE=${CMAKE_CURRENT_SOURCE_DIR}/btl/bootloader.conf" - -DCONFIG_BOOT_SIGNATURE_KEY_FILE="${KEY}" ) - -add_subdirectory(app) |