summaryrefslogtreecommitdiff
path: root/fw/CMakeLists.txt
blob: aa5af1cf1db2e3a9340223484abc448fe8feb5f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# This Source Code Form is subject to the terms of the Mozilla Public License,
# v. 2.0. If a copy of the MPL was not distributed with this file, You can
# obtain one at https://mozilla.org/MPL/2.0/.

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_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}")

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(
	app
	PREFIX app
	SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/app"
	BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/app"
	INSTALL_COMMAND ""
	LIST_SEPARATOR ","
	CMAKE_ARGS
		"-DBOARD=${BOARD}"
		"-DZEPHYR_BASE=${ZEPHYR_BASE}"
		"-DZEPHYR_MODULES=${ZEPHYR_MODULES_COMMA}"
)