blob: 995361340f452fc46cbe3a0d531b46221437106a [file] [log] [blame]
Gyorgy Szing30fa9872017-12-05 01:08:47 +00001#-------------------------------------------------------------------------------
Marc Moreno Berengue3587a9f2019-01-14 15:56:46 +00002# Copyright (c) 2017-2019, Arm Limited. All rights reserved.
Gyorgy Szing30fa9872017-12-05 01:08:47 +00003#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
7
8cmake_minimum_required(VERSION 3.7)
9
10#Tell cmake where our modules can be found
11list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/../cmake)
12
Ken Liue40f9a22019-06-03 16:42:47 +080013#Tell TFM Root before calling sub cmake
14get_filename_component(TFM_ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}/.." ABSOLUTE)
15
Gyorgy Szing30fa9872017-12-05 01:08:47 +000016#Include common stuff to control cmake.
17include("Common/BuildSys")
18
19#Start an embedded project.
Ken Liue40f9a22019-06-03 16:42:47 +080020embedded_project_start(CONFIG "${TFM_ROOT_DIR}/configs/ConfigDefault.cmake")
Gyorgy Szing30fa9872017-12-05 01:08:47 +000021project(tfm_tests LANGUAGES ASM C)
22embedded_project_fixup()
23
Gyorgy Szing30fa9872017-12-05 01:08:47 +000024#Check incoming configuration options
25if (NOT DEFINED SERVICES_TEST_ENABLED)
26 message(FATAL_ERROR "Incomplete build configuration: SERVICES_TEST_ENABLED is undefined. ")
27endif()
28
Tamas Ban3109b302018-08-15 14:51:58 +010029if (NOT DEFINED CORE_TEST_INTERACTIVE)
30 message(FATAL_ERROR "Incomplete build configuration: CORE_TEST_INTERACTIVE is undefined. ")
Gyorgy Szing30fa9872017-12-05 01:08:47 +000031endif()
32
Tamas Ban3109b302018-08-15 14:51:58 +010033if (NOT DEFINED CORE_TEST_POSITIVE)
34 message(FATAL_ERROR "Incomplete build configuration: CORE_TEST_POSITIVE is undefined. ")
35endif()
36
37if (NOT DEFINED TFM_LVL)
38 message(FATAL_ERROR "Incomplete build configuration: TFM_LVL is undefined. ")
Gyorgy Szing30fa9872017-12-05 01:08:47 +000039endif()
40
Jamie Foxc78c62c2019-05-23 13:42:17 +010041if (NOT DEFINED TFM_PARTITION_AUDIT_LOG)
42 message(FATAL_ERROR "Incomplete build configuration: TFM_PARTITION_AUDIT_LOG is undefined.")
43endif()
44
Gyorgy Szing30fa9872017-12-05 01:08:47 +000045#Configure our options as needed.
46if (CORE_TEST_INTERACTIVE OR CORE_TEST_POSITIVE)
47 set(ENABLE_CORE_TESTS True)
48 set(ENABLE_CORE_TESTS_2 True)
49else()
50 set(ENABLE_CORE_TESTS False)
51 set(ENABLE_CORE_TESTS_2 False)
52endif()
53
Gyorgy Szing30fa9872017-12-05 01:08:47 +000054set(ENABLE_SECURE_STORAGE_SERVICE_TESTS TRUE)
Antonio de Angelis7852dff2018-02-07 11:15:54 +000055set(ENABLE_AUDIT_LOGGING_SERVICE_TESTS TRUE)
Antonio de Angelis88c5b272018-08-31 15:48:21 +010056set(ENABLE_CRYPTO_SERVICE_TESTS TRUE)
Gyorgy Szing30fa9872017-12-05 01:08:47 +000057set(ENABLE_INVERT_SERVICE_TESTS TRUE)
Tamas Ban229f9db2018-08-17 12:57:13 +010058set(ENABLE_ATTESTATION_SERVICE_TESTS TRUE)
Tamas Banaaf90392019-01-02 13:24:13 +000059set(ENABLE_QCBOR_TESTS TRUE)
Jamie Foxc78c62c2019-05-23 13:42:17 +010060
61if (NOT TFM_PARTITION_AUDIT_LOG)
62 set(ENABLE_AUDIT_LOGGING_SERVICE_TESTS FALSE)
63endif()
64
65if (ENABLE_AUDIT_LOGGING_SERVICE_TESTS)
66 set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS ENABLE_AUDIT_LOGGING_SERVICE_TESTS)
67endif()
68
Gyorgy Szing30fa9872017-12-05 01:08:47 +000069include(${CMAKE_CURRENT_LIST_DIR}/CMakeLists.inc)
70
Laurence Lundbladedada1232019-03-01 09:13:14 -080071if (NOT TARGET tfm_t_cose_verify)
72 add_subdirectory(${TFM_ROOT_DIR}/lib/t_cose ${CMAKE_CURRENT_BINARY_DIR}/t_cose)
73endif()
74
Tamas Bana4574d92019-03-06 14:21:33 +000075if (NOT TARGET tfm_qcbor)
76 add_subdirectory(${TFM_ROOT_DIR}/lib/ext/qcbor ${CMAKE_CURRENT_BINARY_DIR}/qcbor)
77endif()
78
79#Build the secure library. Even though secure tests files depend on tfm_qcbor,
80#this is not expressed here as the tfm_attest library is expected to hold the
81#compiled tfm_qcbor files.
Laurence Lundbladedada1232019-03-01 09:13:14 -080082add_library(tfm_secure_tests STATIC ${ALL_SRC_C} ${ALL_SRC_C_S} $<TARGET_OBJECTS:tfm_t_cose_verify>)
Tamas Bandb69d522018-03-01 10:04:41 +000083
84#Set common compiler and linker flags
85config_setting_shared_compiler_flags(tfm_secure_tests)
86config_setting_shared_linker_flags(tfm_secure_tests)
87
Gyorgy Szing30fa9872017-12-05 01:08:47 +000088embedded_set_target_compile_defines(TARGET tfm_secure_tests LANGUAGE C DEFINES __thumb2__ __ARM_FEATURE_CMSE=3 TFM_LVL=${TFM_LVL} APPEND)
89
90
91#Build the non-secure library
92set(CMAKE_STATIC_LIBRARY_PREFIX_C "lib")
Tamas Bana4574d92019-03-06 14:21:33 +000093add_library(tfm_non_secure_tests STATIC ${ALL_SRC_C} ${ALL_SRC_C_NS} $<TARGET_OBJECTS:tfm_t_cose_verify> $<TARGET_OBJECTS:tfm_qcbor>)
Tamas Bandb69d522018-03-01 10:04:41 +000094
95#Set common compiler and linker flags
96config_setting_shared_compiler_flags(tfm_non_secure_tests)
97config_setting_shared_linker_flags(tfm_non_secure_tests)
98
Tamas Band90c81b2018-08-15 15:03:42 +010099embedded_set_target_compile_defines(TARGET tfm_non_secure_tests LANGUAGE C DEFINES __thumb2__ __ARM_FEATURE_CMSE=3 __DOMAIN_NS=1 TFM_LVL=${TFM_LVL} APPEND)
Gyorgy Szing30fa9872017-12-05 01:08:47 +0000100#__DOMAIN_NS=1
101
102if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
Tamas Bandb69d522018-03-01 10:04:41 +0000103 set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "Default install location for tfm_storage." FORCE)
Gyorgy Szing30fa9872017-12-05 01:08:47 +0000104endif()
105
Tamas Banc2074a72018-08-14 10:23:12 +0100106install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/framework/test_framework_integ_test.h
Gyorgy Szing30fa9872017-12-05 01:08:47 +0000107 ${CMAKE_CURRENT_SOURCE_DIR}/suites/sst/non_secure/os_wrapper.h
Antonio De Angelis6085ff02019-02-20 15:18:40 +0000108 ${CMAKE_CURRENT_SOURCE_DIR}/test_services/tfm_secure_client_service/tfm_secure_client_service_api.h
109 DESTINATION export/tfm/test/inc)
Gyorgy Szing30fa9872017-12-05 01:08:47 +0000110
111install(TARGETS tfm_non_secure_tests
Tamas Ban57bfa432018-04-13 16:05:49 +0100112 DESTINATION export/tfm/test/lib
113 PUBLIC_HEADER DESTINATION export/tfm/test/inc)
Gyorgy Szing30fa9872017-12-05 01:08:47 +0000114
Gyorgy Szing30fa9872017-12-05 01:08:47 +0000115embedded_project_end(tfm_non_secure_tests)
116embedded_project_end(tfm_secure_tests)