blob: 540da91bf63e322afb343f03ab5a82480cde998d [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
31 "${T_COSE_DIR}/src/t_cose_sign1_sign.c"
32 "${T_COSE_DIR}/src/t_cose_util.c"
33 "${T_COSE_DIR}/src/t_cose_parameters.c"
34 "${T_COSE_DIR}/crypto_adapters/t_cose_psa_crypto.c"
35 )
36
37list(APPEND ALL_SRC_C_VERIFY
38 "${T_COSE_DIR}/src/t_cose_sign1_verify.c"
39 "${T_COSE_DIR}/src/t_cose_util.c"
40 "${T_COSE_DIR}/src/t_cose_parameters.c"
41 "${T_COSE_DIR}/crypto_adapters/t_cose_psa_crypto.c"
42 )
43
44list(APPEND ALL_SRC_C_TEST
45 "${T_COSE_DIR}/test/run_tests.c"
46 "${T_COSE_DIR}/test/t_cose_make_psa_test_key.c"
47 "${T_COSE_DIR}/test/t_cose_make_test_messages.c"
48 "${T_COSE_DIR}/test/t_cose_sign_verify_test.c"
49 "${T_COSE_DIR}/test/t_cose_test.c"
50 )
51
52#Setting include directories
53embedded_include_directories(PATH ${T_COSE_DIR}/inc ABSOLUTE)
54embedded_include_directories(PATH ${T_COSE_DIR}/../qcbor/inc ABSOLUTE)
55embedded_target_include_directories(TARGET tfm_t_cose_sign PATH ${T_COSE_DIR}/src ABSOLUTE APPEND)
56embedded_target_include_directories(TARGET tfm_t_cose_verify PATH ${T_COSE_DIR}/src ABSOLUTE APPEND)
57embedded_target_include_directories(TARGET tfm_t_cose_test PATH ${T_COSE_DIR}/src ABSOLUTE APPEND)
58
59#Specify what we build (t_cose_sign and t_cose_verify build as an object library)
60add_library(tfm_t_cose_sign OBJECT ${ALL_SRC_C_SIGN})
61add_library(tfm_t_cose_verify OBJECT ${ALL_SRC_C_VERIFY})
62add_library(tfm_t_cose_test OBJECT ${ALL_SRC_C_TEST})
63
64#Setting target specific defines
65
66list(APPEND T_COSE_COMPILE_TIME_CONFIG
67 "T_COSE_USE_PSA_CRYPTO"
68 "T_COSE_DISABLE_ES384"
69 "T_COSE_DISABLE_ES512"
70 "T_COSE_DISABLE_CONTENT_TYPE"
71 "T_COSE_DISABLE_SIGN_VERIFY_TESTS"
72 )
73
Tamas Banabea89d2020-01-15 13:29:25 +000074if (NOT ATTEST_INCLUDE_TEST_CODE)
Tamas Banc2e0c182020-01-07 15:09:16 +000075 list(APPEND T_COSE_COMPILE_TIME_CONFIG "T_COSE_DISABLE_SHORT_CIRCUIT_SIGN")
76endif()
77
78embedded_set_target_compile_defines(TARGET tfm_t_cose_sign LANGUAGE C DEFINES ${T_COSE_COMPILE_TIME_CONFIG} APPEND)
79embedded_set_target_compile_defines(TARGET tfm_t_cose_verify LANGUAGE C DEFINES ${T_COSE_COMPILE_TIME_CONFIG} APPEND)
80embedded_set_target_compile_defines(TARGET tfm_t_cose_test LANGUAGE C DEFINES ${T_COSE_COMPILE_TIME_CONFIG} APPEND)
81
82#Set common compiler flags
83config_setting_shared_compiler_flags(tfm_t_cose_sign)
84config_setting_shared_compiler_flags(tfm_t_cose_verify)
85config_setting_shared_compiler_flags(tfm_t_cose_test)
86
87embedded_project_end(tfm_t_cose_sign)
88embedded_project_end(tfm_t_cose_verify)
89embedded_project_end(tfm_t_cose_test)