1#-------------------------------------------------------------------------------
2# Copyright (c) 2020-2023, Arm Limited. All rights reserved.
3# Copyright (c) 2022 Cypress Semiconductor Corporation (an Infineon company)
4# or an affiliate of Cypress Semiconductor Corporation. All rights reserved.
5#
6# SPDX-License-Identifier: BSD-3-Clause
7#
8#-------------------------------------------------------------------------------
9
10cmake_minimum_required(VERSION 3.21)
11
12list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
13include(version)
14include(remote_library)
15include(utils)
16
17if(EXISTS ${CMAKE_SOURCE_DIR}/localrepos.cmake)
18    message(WARNING "Building using local repositories from \"" ${CMAKE_SOURCE_DIR}/localrepos.cmake "\"")
19    include(${CMAKE_SOURCE_DIR}/localrepos.cmake)
20endif()
21
22############################ CONFIGURATION #####################################
23include(config/pre_config.cmake)
24
25if(USE_KCONFIG_TOOL)
26    include(${CMAKE_SOURCE_DIR}/config/kconfig.cmake)
27else()
28    include(${CMAKE_SOURCE_DIR}/config/set_config.cmake)
29endif()
30
31include(config/post_config.cmake)
32
33############################### Compiler configuration #########################
34
35include(${TFM_TOOLCHAIN_FILE})
36
37set(CMAKE_C_COMPILER_FORCED true)
38set(CMAKE_CXX_COMPILER_FORCED true)
39
40project("Trusted Firmware M" VERSION ${TFM_VERSION} LANGUAGES C CXX ASM)
41tfm_toolchain_reload_compiler()
42
43add_subdirectory(lib/ext)
44add_subdirectory(lib/fih)
45add_subdirectory(tools)
46add_subdirectory(secure_fw)
47
48add_subdirectory(interface)
49if(BL2)
50    add_subdirectory(bl2)
51endif()
52
53if(BL1 AND PLATFORM_DEFAULT_BL1)
54    add_subdirectory(bl1/bl1_2)
55    add_subdirectory(bl1/bl1_1)
56endif()
57
58add_subdirectory(platform)
59
60if(CRYPTO_HW_ACCELERATOR)
61    add_subdirectory(platform/ext/accelerator)
62endif()
63
64if(IS_DIRECTORY ${CONFIG_TFM_TEST_DIR})
65    add_subdirectory(${CONFIG_TFM_TEST_DIR} ${CMAKE_CURRENT_BINARY_DIR}/tf-m-tests)
66endif()
67
68############################ Config Check ######################################
69
70include(${CMAKE_SOURCE_DIR}/config/check_config.cmake)
71
72################################################################################
73
74include(cmake/install.cmake)
75