blob: 7b8c560f8dafec8b96ddb6117c0583669be4c015 [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"
David Huaa342d52020-01-26 21:34:20 +080049 "${T_COSE_DIR}/crypto_adapters/t_cose_psa_crypto.c"
Tamas Banc2e0c182020-01-07 15:09:16 +000050 )
51
David Huaa342d52020-01-26 21:34:20 +080052if (SYMMETRIC_INITIAL_ATTESTATION)
53 list(APPEND ALL_SRC_C_VERIFY "${T_COSE_DIR}/src/t_cose_mac0_verify.c")
54else()
55 list(APPEND ALL_SRC_C_VERIFY "${T_COSE_DIR}/src/t_cose_sign1_verify.c")
David Hu333ca932020-01-25 12:25:41 +080056endif()
57
David Hu946d62e2020-01-25 17:19:13 +080058if (ENABLE_T_COSE_TESTS)
59 list(APPEND ALL_SRC_C_TEST
60 "${T_COSE_DIR}/test/run_tests.c"
61 "${T_COSE_DIR}/test/t_cose_make_psa_test_key.c"
62 "${T_COSE_DIR}/test/t_cose_make_test_messages.c"
63 "${T_COSE_DIR}/test/t_cose_sign_verify_test.c"
64 "${T_COSE_DIR}/test/t_cose_test.c"
65 )
66endif()
Tamas Banc2e0c182020-01-07 15:09:16 +000067
68#Setting include directories
69embedded_include_directories(PATH ${T_COSE_DIR}/inc ABSOLUTE)
70embedded_include_directories(PATH ${T_COSE_DIR}/../qcbor/inc ABSOLUTE)
71embedded_target_include_directories(TARGET tfm_t_cose_sign PATH ${T_COSE_DIR}/src ABSOLUTE APPEND)
72embedded_target_include_directories(TARGET tfm_t_cose_verify PATH ${T_COSE_DIR}/src ABSOLUTE APPEND)
David Hu946d62e2020-01-25 17:19:13 +080073if (ENABLE_T_COSE_TESTS)
74 embedded_target_include_directories(TARGET tfm_t_cose_test PATH ${T_COSE_DIR}/src ABSOLUTE APPEND)
75endif()
Tamas Banc2e0c182020-01-07 15:09:16 +000076
77#Specify what we build (t_cose_sign and t_cose_verify build as an object library)
78add_library(tfm_t_cose_sign OBJECT ${ALL_SRC_C_SIGN})
79add_library(tfm_t_cose_verify OBJECT ${ALL_SRC_C_VERIFY})
David Hu946d62e2020-01-25 17:19:13 +080080if (ENABLE_T_COSE_TESTS)
81 add_library(tfm_t_cose_test OBJECT ${ALL_SRC_C_TEST})
82endif()
Tamas Banc2e0c182020-01-07 15:09:16 +000083
84#Setting target specific defines
85
86list(APPEND T_COSE_COMPILE_TIME_CONFIG
87 "T_COSE_USE_PSA_CRYPTO"
Tamas Banc2e0c182020-01-07 15:09:16 +000088 "T_COSE_DISABLE_CONTENT_TYPE"
Antonio de Angelis04debbd2019-10-14 12:12:52 +010089 "T_COSE_USE_PSA_CRYPTO_FROM_TFM"
Tamas Banc2e0c182020-01-07 15:09:16 +000090 )
91
David Hu333ca932020-01-25 12:25:41 +080092if (NOT SYMMETRIC_INITIAL_ATTESTATION)
93 list(APPEND T_COSE_COMPILE_TIME_CONFIG
94 "T_COSE_DISABLE_ES384"
95 "T_COSE_DISABLE_ES512"
96 "T_COSE_DISABLE_SIGN_VERIFY_TESTS"
97 )
98endif()
99
Tamas Banabea89d2020-01-15 13:29:25 +0000100if (NOT ATTEST_INCLUDE_TEST_CODE)
Tamas Banc2e0c182020-01-07 15:09:16 +0000101 list(APPEND T_COSE_COMPILE_TIME_CONFIG "T_COSE_DISABLE_SHORT_CIRCUIT_SIGN")
102endif()
103
104embedded_set_target_compile_defines(TARGET tfm_t_cose_sign LANGUAGE C DEFINES ${T_COSE_COMPILE_TIME_CONFIG} APPEND)
105embedded_set_target_compile_defines(TARGET tfm_t_cose_verify LANGUAGE C DEFINES ${T_COSE_COMPILE_TIME_CONFIG} APPEND)
David Hu946d62e2020-01-25 17:19:13 +0800106if (ENABLE_T_COSE_TESTS)
107 embedded_set_target_compile_defines(TARGET tfm_t_cose_test LANGUAGE C DEFINES ${T_COSE_COMPILE_TIME_CONFIG} APPEND)
108endif()
Tamas Banc2e0c182020-01-07 15:09:16 +0000109
Mate Toth-Pal8f17a712020-03-02 16:22:19 +0100110if (DEFINED CMSE_FLAGS)
111 embedded_set_target_compile_flags(TARGET tfm_t_cose_sign LANGUAGE C APPEND FLAGS ${CMSE_FLAGS})
112 embedded_set_target_compile_flags(TARGET tfm_t_cose_verify LANGUAGE C APPEND FLAGS ${CMSE_FLAGS})
113 embedded_set_target_compile_flags(TARGET tfm_t_cose_test LANGUAGE C APPEND FLAGS ${CMSE_FLAGS})
114endif()
115
Tamas Banc2e0c182020-01-07 15:09:16 +0000116#Set common compiler flags
117config_setting_shared_compiler_flags(tfm_t_cose_sign)
118config_setting_shared_compiler_flags(tfm_t_cose_verify)
David Hu946d62e2020-01-25 17:19:13 +0800119if (ENABLE_T_COSE_TESTS)
120 config_setting_shared_compiler_flags(tfm_t_cose_test)
121endif()
Tamas Banc2e0c182020-01-07 15:09:16 +0000122
123embedded_project_end(tfm_t_cose_sign)
124embedded_project_end(tfm_t_cose_verify)
David Hu946d62e2020-01-25 17:19:13 +0800125if (ENABLE_T_COSE_TESTS)
126 embedded_project_end(tfm_t_cose_test)
127endif()