summaryrefslogtreecommitdiff
path: root/fw/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'fw/CMakeLists.txt')
-rw-r--r--fw/CMakeLists.txt41
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)