blob: 996d87c5d2920bad9ca3e40695396d09756b1abb [file] [log] [blame]
Tamas Ban581034a2017-12-19 19:54:37 +00001#------------------------------------------------------------------------------
David Vinczec3e313a2020-01-06 17:31:11 +01002# Copyright (c) 2017-2020, Arm Limited. All rights reserved.
Tamas Ban581034a2017-12-19 19:54:37 +00003#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#------------------------------------------------------------------------------
7
8cmake_minimum_required(VERSION 3.7)
9
David Hu857bfa52019-05-21 13:54:50 +080010set(TFM_BUILD_IN_SPE ON)
11
Tamas Ban581034a2017-12-19 19:54:37 +000012#Tell cmake where our modules can be found
13list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/../../../cmake)
14
15#Include common stuff to control cmake.
16include("Common/BuildSys")
17
18#Start an embedded project.
David Vinczec3e313a2020-01-06 17:31:11 +010019get_filename_component(TFM_ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}/../../.." ABSOLUTE)
Ken Liue40f9a22019-06-03 16:42:47 +080020embedded_project_start(CONFIG "${TFM_ROOT_DIR}/configs/ConfigDefault.cmake")
Tamas Ban581034a2017-12-19 19:54:37 +000021project(mcuboot LANGUAGES ASM C)
22embedded_project_fixup()
23
Raymond Ngune3593c62020-06-25 09:47:36 -070024#Check input variables
25if (NOT DEFINED BL2)
26 message(FATAL ERROR "Incomplete build configuration: BL2 is undefined.")
27elseif(NOT BL2)
28 #If mcuboot is not need to be built then stop further processing.
29 return()
30endif()
31
David Vinczec3e313a2020-01-06 17:31:11 +010032#Set the appropriate MCUBoot path
33if (MCUBOOT_REPO STREQUAL "TF-M")
34 get_filename_component(MCUBOOT_DIR ${CMAKE_CURRENT_LIST_DIR} ABSOLUTE)
35else()
36 get_filename_component(MCUBOOT_DIR "${TFM_ROOT_DIR}/../mcuboot/boot" ABSOLUTE)
37 if (NOT EXISTS ${MCUBOOT_DIR})
38 message(FATAL_ERROR "Missing MCUBoot. Please clone the MCUBoot repo to directory \"${MCUBOOT_DIR}\".")
39 endif()
40endif()
41
Raef Coles1bb168e2019-10-17 09:04:55 +010042if (NOT DEFINED MBEDCRYPTO_C_FLAGS_BL2)
43 message(FATAL_ERROR "Incomplete build configuration: MBEDCRYPTO_C_FLAGS_BL2 is undefined.")
Tamas Ban581034a2017-12-19 19:54:37 +000044endif()
45
Marc Moreno Berenguea1f296f2018-01-25 15:21:22 +000046set(BUILD_CMSIS_CORE On)
47set(BUILD_RETARGET On)
48set(BUILD_NATIVE_DRIVERS On)
49set(BUILD_STARTUP On)
50set(BUILD_TARGET_CFG Off)
David Vincze060968d2019-05-23 01:13:14 +020051set(BUILD_TARGET_NV_COUNTERS On)
Marc Moreno Berenguea1f296f2018-01-25 15:21:22 +000052set(BUILD_CMSIS_DRIVERS On)
53set(BUILD_TIME Off)
54set(BUILD_UART_STDOUT On)
55set(BUILD_FLASH On)
Mate Toth-Pald3c77662019-02-20 16:23:00 +010056set(BUILD_PLAT_TEST Off)
Tamas Band4bf3472019-09-06 12:59:56 +010057set(BUILD_BOOT_HAL On)
Tamas Band0f4e1d2019-07-11 09:39:03 +010058
59if (MCUBOOT_HW_KEY)
60 set(BUILD_TARGET_HARDWARE_KEYS On)
61else()
62 set(BUILD_TARGET_HARDWARE_KEYS Off)
63endif()
64
Marc Moreno Berenguea1f296f2018-01-25 15:21:22 +000065if(NOT DEFINED PLATFORM_CMAKE_FILE)
66 message (FATAL_ERROR "Platform specific CMake is not defined. Please set PLATFORM_CMAKE_FILE.")
67elseif(NOT EXISTS ${PLATFORM_CMAKE_FILE})
68 message (FATAL_ERROR "Platform specific CMake \"${PLATFORM_CMAKE_FILE}\" file does not exist. Please fix value of PLATFORM_CMAKE_FILE.")
69else()
70 include(${PLATFORM_CMAKE_FILE})
71endif()
72
David Hu857bfa52019-05-21 13:54:50 +080073#Add platform specific definitions in SPE
74if (DEFINED TFM_PLATFORM_SECURE_DEFS)
75 embedded_set_target_compile_defines(TARGET ${PROJECT_NAME} LANGUAGE C DEFINES ${TFM_PLATFORM_SECURE_DEFS} APPEND)
76 embedded_set_target_compile_defines(TARGET ${PROJECT_NAME} LANGUAGE ASM DEFINES ${TFM_PLATFORM_SECURE_DEFS} APPEND)
77endif()
78
Mate Toth-Pal8f17a712020-03-02 16:22:19 +010079if (DEFINED CMSE_FLAGS)
80 embedded_set_target_compile_flags(TARGET ${PROJECT_NAME} LANGUAGE C APPEND FLAGS ${CMSE_FLAGS})
81endif()
82
Tamas Ban581034a2017-12-19 19:54:37 +000083#Append all our source files to global lists.
Tamas Bana9de4a62018-09-18 08:09:45 +010084list(APPEND ALL_SRC_C
David Vinczec3e313a2020-01-06 17:31:11 +010085 "${TFM_ROOT_DIR}/bl2/ext/mcuboot/bl2_main.c"
86 "${TFM_ROOT_DIR}/bl2/ext/mcuboot/flash_map_extended.c"
87 "${TFM_ROOT_DIR}/bl2/ext/mcuboot/flash_map_legacy.c"
88 "${TFM_ROOT_DIR}/bl2/ext/mcuboot/keys.c"
89 "${TFM_ROOT_DIR}/bl2/src/flash_map.c"
David Vinczeabb527c2020-01-10 11:19:05 +010090 "${TFM_ROOT_DIR}/bl2/src/security_cnt.c"
Tamas Ban581034a2017-12-19 19:54:37 +000091 "${MCUBOOT_DIR}/bootutil/src/loader.c"
92 "${MCUBOOT_DIR}/bootutil/src/bootutil_misc.c"
93 "${MCUBOOT_DIR}/bootutil/src/image_validate.c"
94 "${MCUBOOT_DIR}/bootutil/src/image_rsa.c"
David Vincze07706a42019-12-12 18:20:12 +010095 "${MCUBOOT_DIR}/bootutil/src/tlv.c"
Tamas Ban581034a2017-12-19 19:54:37 +000096 )
97
David Vinczec3e313a2020-01-06 17:31:11 +010098if (MCUBOOT_REPO STREQUAL "TF-M")
99 list(APPEND ALL_SRC_C
100 "${TFM_ROOT_DIR}/bl2/src/boot_record.c"
David Vinczec3e313a2020-01-06 17:31:11 +0100101 )
Balint Matyi761ebaf2020-03-16 09:12:12 +0100102else()
103 list(APPEND ALL_SRC_C
David Vincze141f2152020-02-19 09:42:07 +0100104 "${MCUBOOT_DIR}/bootutil/src/boot_record.c"
Balint Matyi761ebaf2020-03-16 09:12:12 +0100105 "${MCUBOOT_DIR}/bootutil/src/swap_scratch.c"
106 "${MCUBOOT_DIR}/bootutil/src/swap_move.c"
107 "${MCUBOOT_DIR}/bootutil/src/swap_misc.c"
Balint Matyi5c476312020-03-31 13:15:39 +0100108 "${MCUBOOT_DIR}/bootutil/src/encrypted.c"
Balint Matyi761ebaf2020-03-16 09:12:12 +0100109 )
David Vinczec3e313a2020-01-06 17:31:11 +0100110endif()
111
Soby Mathew07ef6e42020-07-20 21:09:23 +0100112#Define location of Mbed-Crypto(MbedTLS) source, build, and installation directory.
David Vinczecea8b592019-10-29 16:09:51 +0100113set(MBEDTLS_CONFIG_FILE "config-rsa.h")
Raef Coles0e82adc2019-10-17 15:06:26 +0100114set(MBEDTLS_CONFIG_PATH "${TFM_ROOT_DIR}/bl2/ext/mcuboot/include")
Balint Matyi5c476312020-03-31 13:15:39 +0100115
Soby Mathew07ef6e42020-07-20 21:09:23 +0100116get_filename_component(MBEDCRYPTO_SOURCE_DIR "${TFM_ROOT_DIR}/../mbedtls" ABSOLUTE)
Raef Coles1bb168e2019-10-17 09:04:55 +0100117if(NOT EXISTS ${MBEDCRYPTO_SOURCE_DIR})
Soby Mathew07ef6e42020-07-20 21:09:23 +0100118 message(FATAL_ERROR "Missing mbed-crypto(mbedtls). Please clone the mbedtls repo to directory \"${MBEDCRYPTO_SOURCE_DIR}\".")
Tamas Ban581034a2017-12-19 19:54:37 +0000119endif()
Raef Coles1bb168e2019-10-17 09:04:55 +0100120set (MBEDCRYPTO_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/mbed-crypto/build")
121set (MBEDCRYPTO_INSTALL_DIR ${MBEDCRYPTO_BINARY_DIR}/../install)
Tamas Ban581034a2017-12-19 19:54:37 +0000122
Tamas Banf824e742019-10-25 21:22:26 +0100123if (CRYPTO_HW_ACCELERATOR OR CRYPTO_HW_ACCELERATOR_OTP_STATE STREQUAL "PROVISIONING")
Raef Coles0e82adc2019-10-17 15:06:26 +0100124 if(NOT DEFINED CRYPTO_HW_ACCELERATOR_CMAKE_BUILD)
125 message(FATAL_ERROR "CRYPTO_HW_ACCELERATOR_CMAKE_BUILD not defined.")
126 endif()
127 include(${CRYPTO_HW_ACCELERATOR_CMAKE_BUILD})
128endif()
129
Balint Matyi5c476312020-03-31 13:15:39 +0100130if(MCUBOOT_SIGNATURE_TYPE STREQUAL "RSA-3072")
131 set(MCUBOOT_MBEDCRYPTO_SIGNATURE " -DMCUBOOT_SIGN_RSA_LEN=3072")
132elseif(MCUBOOT_SIGNATURE_TYPE STREQUAL "RSA-2048")
133 set(MCUBOOT_MBEDCRYPTO_SIGNATURE " -DMCUBOOT_SIGN_RSA_LEN=2048")
134else()
135 set(MCUBOOT_MBEDCRYPTO_SIGNATURE "")
136endif()
137
138string(APPEND MBEDCRYPTO_C_FLAGS_BL2 " ${MCUBOOT_MBEDCRYPTO_SIGNATURE} -I${MBEDTLS_CONFIG_PATH}")
139
Raef Coles1bb168e2019-10-17 09:04:55 +0100140#Build Mbed Crypto as external project.
141#This ensures Mbed Crypto is built with exactly defined settings.
Raef Coles0e82adc2019-10-17 15:06:26 +0100142#Mbed Crypto will be used from its install location
143string(APPEND MBEDCRYPTO_C_FLAGS " ${MBEDCRYPTO_C_FLAGS_BL2}")
Raef Coles1bb168e2019-10-17 09:04:55 +0100144set(MBEDCRYPTO_TARGET_NAME "mbedcrypto_mcuboot_lib")
145include(${TFM_ROOT_DIR}/BuildMbedCrypto.cmake)
Tamas Ban581034a2017-12-19 19:54:37 +0000146
147#Setting include directories
Tamas Bandb69d522018-03-01 10:04:41 +0000148embedded_target_include_directories(TARGET ${PROJECT_NAME} PATH ${TFM_ROOT_DIR} ABSOLUTE APPEND)
Raef Coles4d6ea2f2019-10-15 14:30:40 +0100149embedded_target_include_directories(TARGET ${PROJECT_NAME} PATH ${TFM_ROOT_DIR}/interface/include ABSOLUTE APPEND)
Tamas Bana9de4a62018-09-18 08:09:45 +0100150embedded_target_include_directories(TARGET ${PROJECT_NAME} PATH ${TFM_ROOT_DIR}/bl2/include ABSOLUTE APPEND)
Tamas Bandb69d522018-03-01 10:04:41 +0000151embedded_target_include_directories(TARGET ${PROJECT_NAME} PATH ${TFM_ROOT_DIR}/bl2/ext/mcuboot/include ABSOLUTE APPEND)
David Vinczec3e313a2020-01-06 17:31:11 +0100152embedded_target_include_directories(TARGET ${PROJECT_NAME} PATH ${MCUBOOT_DIR}/bootutil/include ABSOLUTE APPEND)
Raef Coles1bb168e2019-10-17 09:04:55 +0100153embedded_target_include_directories(TARGET ${PROJECT_NAME} PATH ${MBEDCRYPTO_INSTALL_DIR}/include ABSOLUTE APPEND)
Balint Matyi2fe04922020-02-18 12:27:38 +0000154embedded_target_include_directories(TARGET ${PROJECT_NAME} PATH ${CMAKE_CURRENT_BINARY_DIR} ABSOLUTE APPEND)
Tamas Ban581034a2017-12-19 19:54:37 +0000155
156#Define linker file
Mate Toth-Pal48fc6a02018-01-24 09:50:14 +0100157if(NOT DEFINED BL2_LINKER_CONFIG)
158 message(FATAL_ERROR "ERROR: Incomplete Configuration: BL2_LINKER_CONFIG is not defined.")
159endif()
Gabor Kerteszd7d7d742018-07-04 11:50:05 +0200160embedded_set_target_linker_file(TARGET ${PROJECT_NAME} PATH "${BL2_LINKER_CONFIG}")
161
162if(NOT DEFINED PLATFORM_LINK_INCLUDES)
163 message(FATAL_ERROR "ERROR: Incomplete Configuration: PLATFORM_LINK_INCLUDES is not defined.")
164endif()
165embedded_set_target_link_includes(TARGET ${PROJECT_NAME} INCLUDES "${PLATFORM_LINK_INCLUDES}")
Tamas Ban581034a2017-12-19 19:54:37 +0000166
David Hu857bfa52019-05-21 13:54:50 +0800167add_executable(${PROJECT_NAME} ${ALL_SRC_ASM} ${ALL_SRC_C_BL2} ${ALL_SRC_ASM_BL2} ${ALL_SRC_C} ${ALL_SRC_CXX})
Tamas Ban581034a2017-12-19 19:54:37 +0000168
Tamas Bandb69d522018-03-01 10:04:41 +0000169#Set common compiler and linker flags
170config_setting_shared_compiler_flags(${PROJECT_NAME})
171config_setting_shared_linker_flags(${PROJECT_NAME})
172
David Vincze63eda7a2019-08-09 17:42:51 +0200173#Add BL2 and MCUBOOT_IMAGE_NUMBER defines to linker to resolve symbols in region_defs.h and flash_layout.h
174embedded_set_target_link_defines(TARGET ${PROJECT_NAME} DEFINES "BL2" "MCUBOOT_IMAGE_NUMBER=${MCUBOOT_IMAGE_NUMBER}")
Tamas Ban581034a2017-12-19 19:54:37 +0000175
Marc Moreno Berenguecae2c532018-10-09 12:58:46 +0100176if(NOT DEFINED TEST_FRAMEWORK_S)
177 message(FATAL_ERROR "Incomplete build configuration: TEST_FRAMEWORK_S is undefined.")
178elseif(TEST_FRAMEWORK_S)
179 embedded_set_target_link_defines(TARGET ${PROJECT_NAME} DEFINES "TEST_FRAMEWORK_S")
180endif()
181
182if(NOT DEFINED TEST_FRAMEWORK_NS)
183 message(FATAL_ERROR "Incomplete build configuration: TEST_FRAMEWORK_NS is undefined.")
184elseif(TEST_FRAMEWORK_NS)
185 embedded_set_target_link_defines(TARGET ${PROJECT_NAME} DEFINES "TEST_FRAMEWORK_NS")
186endif()
187
Tamas Ban581034a2017-12-19 19:54:37 +0000188#Link mbedcrypto library to project
Raef Coles1bb168e2019-10-17 09:04:55 +0100189target_link_libraries(${PROJECT_NAME} "${MBEDCRYPTO_INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX_C}mbedcrypto${CMAKE_STATIC_LIBRARY_SUFFIX_C}")
190add_dependencies(${PROJECT_NAME} ${MBEDCRYPTO_TARGET_NAME}_install)
Tamas Ban581034a2017-12-19 19:54:37 +0000191
Raef Coles0e82adc2019-10-17 15:06:26 +0100192#Link crypto accelerator libraries if applicable
Tamas Banf824e742019-10-25 21:22:26 +0100193if (CRYPTO_HW_ACCELERATOR OR CRYPTO_HW_ACCELERATOR_OTP_STATE STREQUAL "PROVISIONING")
Raef Coles0e82adc2019-10-17 15:06:26 +0100194 if(NOT DEFINED CRYPTO_HW_ACCELERATOR_CMAKE_LINK)
195 message(FATAL_ERROR "CRYPTO_HW_ACCELERATOR_CMAKE_LINK not defined.")
196 endif()
197 include(${CRYPTO_HW_ACCELERATOR_CMAKE_LINK})
198endif()
199
Tamas Ban581034a2017-12-19 19:54:37 +0000200#Generate binary file from axf
201compiler_generate_binary_output(${PROJECT_NAME})
202
Øyvind Rønningstad762415c2020-04-02 15:34:50 +0200203#Generate intel hex file from axf
204compiler_generate_hex_output(${PROJECT_NAME})
205
206#Generate elf file from axf
207compiler_generate_elf_output(${PROJECT_NAME})
208
David Vinczec3e313a2020-01-06 17:31:11 +0100209message("- MCUBOOT_REPO: '${MCUBOOT_REPO}'.")
David Vincze73dfbc52019-10-11 13:54:58 +0200210message("- MCUBOOT_IMAGE_NUMBER: '${MCUBOOT_IMAGE_NUMBER}'.")
211message("- MCUBOOT_UPGRADE_STRATEGY: '${MCUBOOT_UPGRADE_STRATEGY}'.")
212message("- MCUBOOT_SIGNATURE_TYPE: '${MCUBOOT_SIGNATURE_TYPE}'.")
213message("- MCUBOOT_HW_KEY: '${MCUBOOT_HW_KEY}'.")
214message("- MCUBOOT_LOG_LEVEL: '${MCUBOOT_LOG_LEVEL}'.")
David Vincze54d05552019-08-05 12:58:47 +0200215
Balint Matyi2fe04922020-02-18 12:27:38 +0000216get_property(_log_levels CACHE MCUBOOT_LOG_LEVEL PROPERTY STRINGS)
217list(FIND _log_levels ${MCUBOOT_LOG_LEVEL} LOG_LEVEL_ID)
Tamas Bandb69d522018-03-01 10:04:41 +0000218
David Vinczec3e313a2020-01-06 17:31:11 +0100219if (MCUBOOT_REPO STREQUAL "UPSTREAM")
David Vinczeabb527c2020-01-10 11:19:05 +0100220 set(MCUBOOT_HW_ROLLBACK_PROT On)
David Vincze141f2152020-02-19 09:42:07 +0100221 set(MCUBOOT_MEASURED_BOOT On)
David Vinczef5c1e062020-03-31 17:05:34 +0200222
223 #FixMe: This becomes unnecessary and can be deleted once the sign_key.c file
224 #in upstream MCUboot includes the mcuboot_config.h file and starts "reading"
225 #the configuration macros from there.
226 if (MCUBOOT_HW_KEY)
227 target_compile_definitions(${PROJECT_NAME} PRIVATE MCUBOOT_HW_KEY)
228 endif()
David Vinczec3e313a2020-01-06 17:31:11 +0100229endif()
230
Balint Matyi2fe04922020-02-18 12:27:38 +0000231if(MCUBOOT_SIGNATURE_TYPE STREQUAL "RSA-3072")
232 set(MCUBOOT_SIGN_RSA On)
233 set(MCUBOOT_SIGN_RSA_LEN 3072)
Tamas Ban7801ed42019-05-20 13:21:53 +0100234elseif(MCUBOOT_SIGNATURE_TYPE STREQUAL "RSA-2048")
Balint Matyi2fe04922020-02-18 12:27:38 +0000235 set(MCUBOOT_SIGN_RSA On)
236 set(MCUBOOT_SIGN_RSA_LEN 2048)
Tamas Ban7801ed42019-05-20 13:21:53 +0100237endif()
238
David Vincze4638b2a2019-05-24 10:14:23 +0200239if (${MCUBOOT_UPGRADE_STRATEGY} STREQUAL "OVERWRITE_ONLY")
Balint Matyi2fe04922020-02-18 12:27:38 +0000240 set(MCUBOOT_OVERWRITE_ONLY On)
241elseif(${MCUBOOT_UPGRADE_STRATEGY} STREQUAL "NO_SWAP")
242 set(MCUBOOT_NO_SWAP On)
David Vincze4638b2a2019-05-24 10:14:23 +0200243elseif (${MCUBOOT_UPGRADE_STRATEGY} STREQUAL "RAM_LOADING")
Balint Matyi2fe04922020-02-18 12:27:38 +0000244 set(MCUBOOT_RAM_LOADING On)
Tamas Band0f4e1d2019-07-11 09:39:03 +0100245endif()
246
David Vinczef5c1e062020-03-31 17:05:34 +0200247#FixMe: This becomes unnecessary and can be deleted once the sign_key.c file
248#in upstream MCUboot includes the mcuboot_config.h file and starts "reading"
249#the configuration macros from there.
250if (MCUBOOT_REPO STREQUAL "UPSTREAM" AND MCUBOOT_HW_KEY)
251 set(MCUBOOT_HW_KEY Off)
252 configure_file("${CMAKE_CURRENT_LIST_DIR}/include/mcuboot_config/mcuboot_config.h.in"
253 "${CMAKE_CURRENT_BINARY_DIR}/mcuboot_config/mcuboot_config.h"
254 @ONLY)
255 set(MCUBOOT_HW_KEY On)
256else()
257 configure_file("${CMAKE_CURRENT_LIST_DIR}/include/mcuboot_config/mcuboot_config.h.in"
258 "${CMAKE_CURRENT_BINARY_DIR}/mcuboot_config/mcuboot_config.h"
259 @ONLY)
260endif()
Balint Matyi2fe04922020-02-18 12:27:38 +0000261
262target_compile_definitions(${PROJECT_NAME} PRIVATE MBEDTLS_CONFIG_FILE="${MBEDTLS_CONFIG_FILE}")
263
264if (NOT MCUBOOT_SIGNATURE_TYPE STREQUAL "RSA-3072" AND NOT MCUBOOT_SIGNATURE_TYPE STREQUAL "RSA-2048")
265 message(FATAL_ERROR "${MCUBOOT_SIGNATURE_TYPE} is not supported as firmware signing algorithm")
266endif()
267
268validate_cache_value(MCUBOOT_UPGRADE_STRATEGY)
269
Tamas Bandb69d522018-03-01 10:04:41 +0000270#Set install location. Keep original value to avoid overriding command line settings.
271if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
272 set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "Default install location for MCUBoot." FORCE)
273endif()
274
275#Collect executables to common location: build/install/outputs/
276install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.axf
277 ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.bin
Øyvind Rønningstad762415c2020-04-02 15:34:50 +0200278 ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.hex
279 ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.elf
Tamas Bandb69d522018-03-01 10:04:41 +0000280 DESTINATION outputs/${TARGET_PLATFORM}/)
281
282install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.axf
283 ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.bin
Øyvind Rønningstad762415c2020-04-02 15:34:50 +0200284 ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.hex
285 ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.elf
Tamas Bandb69d522018-03-01 10:04:41 +0000286 DESTINATION outputs/fvp/)
Tamas Ban581034a2017-12-19 19:54:37 +0000287
288#Finally let cmake system apply changes after the whole project is defined.
289embedded_project_end(${PROJECT_NAME})