blob: 406c9bc246d07c7df66a0a09d85f509450db0001 [file] [log] [blame]
Tamas Banc2e0c182020-01-07 15:09:16 +00001#-------------------------------------------------------------------------------
2# Copyright (c) 2019-2020, Arm Limited. All rights reserved.
3#
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
13#Some project global settings
14set(T_COSE_DIR "${CMAKE_CURRENT_LIST_DIR}")
15get_filename_component(TFM_ROOT_DIR "${T_COSE_DIR}/../../.." ABSOLUTE)
16
17#Include common stuff to control cmake.
18include("Common/BuildSys")
19
20#Start an embedded project.
21embedded_project_start(CONFIG "${TFM_ROOT_DIR}/configs/ConfigDefault.cmake")
22project(tfm_t_cose LANGUAGES C)
23embedded_project_fixup()
24
Tamas Banabea89d2020-01-15 13:29:25 +000025if (NOT DEFINED ATTEST_INCLUDE_TEST_CODE)
26 message(FATAL_ERROR "Incomplete build configuration: ATTEST_INCLUDE_TEST_CODE is undefined. ")
Tamas Banc2e0c182020-01-07 15:09:16 +000027endif()
28
29#Append all our source files to global lists.
30list(APPEND ALL_SRC_C_SIGN
Tamas Banc2e0c182020-01-07 15:09:16 +000031 "${T_COSE_DIR}/src/t_cose_util.c"
32 "${T_COSE_DIR}/src/t_cose_parameters.c"
33 "${T_COSE_DIR}/crypto_adapters/t_cose_psa_crypto.c"
34 )
35
David Hu333ca932020-01-25 12:25:41 +080036if (SYMMETRIC_INITIAL_ATTESTATION)
37 list(APPEND T_COSE_COMPILE_TIME_CONFIG "T_COSE_DISABLE_SIGN1")
38
39 list(APPEND ALL_SRC_C_SIGN "${T_COSE_DIR}/src/t_cose_mac0_sign.c")
40else()
41 list(APPEND T_COSE_COMPILE_TIME_CONFIG "T_COSE_DISABLE_MAC0")
42
43 list(APPEND ALL_SRC_C_SIGN "${T_COSE_DIR}/src/t_cose_sign1_sign.c")
44endif()
45
Tamas Banc2e0c182020-01-07 15:09:16 +000046list(APPEND ALL_SRC_C_VERIFY
Tamas Banc2e0c182020-01-07 15:09:16 +000047 "${T_COSE_DIR}/src/t_cose_util.c"
48 "${T_COSE_DIR}/src/t_cose_parameters.c"
Tamas Banc2e0c182020-01-07 15:09:16 +000049 )
50
David Hu333ca932020-01-25 12:25:41 +080051if (NOT SYMMETRIC_INITIAL_ATTESTATION)
52 list(APPEND ALL_SRC_C_VERIFY
53 "${T_COSE_DIR}/src/t_cose_sign1_verify.c"
54 "${T_COSE_DIR}/crypto_adapters/t_cose_psa_crypto.c"
55 )
56endif()
57
Tamas Banc2e0c182020-01-07 15:09:16 +000058list(APPEND ALL_SRC_C_TEST
59 "${T_COSE_DIR}/test/run_tests.c"
60 "${T_COSE_DIR}/test/t_cose_make_psa_test_key.c"
61 "${T_COSE_DIR}/test/t_cose_make_test_messages.c"
62 "${T_COSE_DIR}/test/t_cose_sign_verify_test.c"
63 "${T_COSE_DIR}/test/t_cose_test.c"
64 )
65
66#Setting include directories
67embedded_include_directories(PATH ${T_COSE_DIR}/inc ABSOLUTE)
68embedded_include_directories(PATH ${T_COSE_DIR}/../qcbor/inc ABSOLUTE)
69embedded_target_include_directories(TARGET tfm_t_cose_sign PATH ${T_COSE_DIR}/src ABSOLUTE APPEND)
70embedded_target_include_directories(TARGET tfm_t_cose_verify PATH ${T_COSE_DIR}/src ABSOLUTE APPEND)
71embedded_target_include_directories(TARGET tfm_t_cose_test PATH ${T_COSE_DIR}/src ABSOLUTE APPEND)
72
73#Specify what we build (t_cose_sign and t_cose_verify build as an object library)
74add_library(tfm_t_cose_sign OBJECT ${ALL_SRC_C_SIGN})
75add_library(tfm_t_cose_verify OBJECT ${ALL_SRC_C_VERIFY})
76add_library(tfm_t_cose_test OBJECT ${ALL_SRC_C_TEST})
77
78#Setting target specific defines
79
80list(APPEND T_COSE_COMPILE_TIME_CONFIG
81 "T_COSE_USE_PSA_CRYPTO"
Tamas Banc2e0c182020-01-07 15:09:16 +000082 "T_COSE_DISABLE_CONTENT_TYPE"
Antonio de Angelis04debbd2019-10-14 12:12:52 +010083 "T_COSE_USE_PSA_CRYPTO_FROM_TFM"
Tamas Banc2e0c182020-01-07 15:09:16 +000084 )
85
David Hu333ca932020-01-25 12:25:41 +080086if (NOT SYMMETRIC_INITIAL_ATTESTATION)
87 list(APPEND T_COSE_COMPILE_TIME_CONFIG
88 "T_COSE_DISABLE_ES384"
89 "T_COSE_DISABLE_ES512"
90 "T_COSE_DISABLE_SIGN_VERIFY_TESTS"
91 )
92endif()
93
Tamas Banabea89d2020-01-15 13:29:25 +000094if (NOT ATTEST_INCLUDE_TEST_CODE)
Tamas Banc2e0c182020-01-07 15:09:16 +000095 list(APPEND T_COSE_COMPILE_TIME_CONFIG "T_COSE_DISABLE_SHORT_CIRCUIT_SIGN")
96endif()
97
98embedded_set_target_compile_defines(TARGET tfm_t_cose_sign LANGUAGE C DEFINES ${T_COSE_COMPILE_TIME_CONFIG} APPEND)
99embedded_set_target_compile_defines(TARGET tfm_t_cose_verify LANGUAGE C DEFINES ${T_COSE_COMPILE_TIME_CONFIG} APPEND)
100embedded_set_target_compile_defines(TARGET tfm_t_cose_test LANGUAGE C DEFINES ${T_COSE_COMPILE_TIME_CONFIG} APPEND)
101
Mate Toth-Pal8f17a712020-03-02 16:22:19 +0100102if (DEFINED CMSE_FLAGS)
103 embedded_set_target_compile_flags(TARGET tfm_t_cose_sign LANGUAGE C APPEND FLAGS ${CMSE_FLAGS})
104 embedded_set_target_compile_flags(TARGET tfm_t_cose_verify LANGUAGE C APPEND FLAGS ${CMSE_FLAGS})
105 embedded_set_target_compile_flags(TARGET tfm_t_cose_test LANGUAGE C APPEND FLAGS ${CMSE_FLAGS})
106endif()
107
Tamas Banc2e0c182020-01-07 15:09:16 +0000108#Set common compiler flags
109config_setting_shared_compiler_flags(tfm_t_cose_sign)
110config_setting_shared_compiler_flags(tfm_t_cose_verify)
111config_setting_shared_compiler_flags(tfm_t_cose_test)
112
113embedded_project_end(tfm_t_cose_sign)
114embedded_project_end(tfm_t_cose_verify)
115embedded_project_end(tfm_t_cose_test)