1#------------------------------------------------------------------------------- 2# Copyright (c) 2020-2024, Arm Limited and Contributors. All rights reserved. 3# 4# SPDX-License-Identifier: BSD-3-Clause 5# 6#------------------------------------------------------------------------------- 7 8#------------------------------------------------------------------------------- 9# The base build file shared between deployments of 'component-test' for 10# different environments. Used for running standalone component tests 11# contained within a single executable. 12#------------------------------------------------------------------------------- 13 14#------------------------------------------------------------------------------- 15# External project source-level dependencies 16# 17#------------------------------------------------------------------------------- 18include(${TS_ROOT}/external/tf_a/tf-a.cmake) 19add_tfa_dependency(TARGET "component-test") 20 21#------------------------------------------------------------------------------- 22# Common components from TS project 23# 24#------------------------------------------------------------------------------- 25add_components( 26 TARGET "component-test" 27 BASE_DIR ${TS_ROOT} 28 COMPONENTS 29 "components/app/ts-demo" 30 "components/app/ts-demo/test" 31 "components/common/utils" 32 "components/common/uuid" 33 "components/common/uuid/test" 34 "components/common/tlv" 35 "components/common/tlv/test" 36 "components/common/trace" 37 "components/common/endian" 38 "components/common/endian/test" 39 "components/common/crc32" 40 "components/common/crc32/test" 41 "components/common/mbedtls" 42 "components/config/ramstore" 43 "components/config/ramstore/test" 44 "components/messaging/ffa/libsp/mock" 45 "components/rpc/common/caller" 46 "components/rpc/common/endpoint" 47 "components/rpc/common/interface" 48 "components/rpc/common/test" 49 "components/rpc/common/test/protocol" 50 "components/rpc/direct" 51 "components/rpc/dummy" 52 "components/service/common/include" 53 "components/service/common/serializer/protobuf" 54 "components/service/common/client" 55 "components/service/common/provider" 56 "components/service/common/provider/test" 57 "components/service/locator" 58 "components/service/locator/interface" 59 "components/service/locator/test" 60 "components/service/locator/standalone" 61 "components/service/locator/standalone/services/crypto" 62 "components/service/locator/standalone/services/internal-trusted-storage" 63 "components/service/locator/standalone/services/protected-storage" 64 "components/service/locator/standalone/services/test-runner" 65 "components/service/locator/standalone/services/attestation" 66 "components/service/locator/standalone/services/block-storage" 67 "components/service/locator/standalone/services/fwu" 68 "components/service/locator/standalone/services/rpmb" 69 "components/service/locator/standalone/services/smm-variable" 70 "components/service/attestation/include" 71 "components/service/attestation/claims" 72 "components/service/attestation/claims/sources/boot_seed_generator" 73 "components/service/attestation/claims/sources/null_lifecycle" 74 "components/service/attestation/claims/sources/instance_id" 75 "components/service/attestation/claims/sources/implementation_id" 76 "components/service/attestation/claims/sources/event_log" 77 "components/service/attestation/claims/sources/event_log/mock" 78 "components/service/attestation/claims/sources/event_log/test" 79 "components/service/attestation/reporter/local" 80 "components/service/attestation/reporter/eat" 81 "components/service/attestation/reporter/dump/raw" 82 "components/service/attestation/key_mngr/local" 83 "components/service/attestation/provider" 84 "components/service/attestation/provider/serializer/packed-c" 85 "components/service/attestation/client/psa" 86 "components/service/attestation/client/provision" 87 "components/service/attestation/test/component" 88 "components/service/attestation/test/service" 89 "components/service/block_storage/block_store" 90 "components/service/block_storage/block_store/device" 91 "components/service/block_storage/block_store/device/ram" 92 "components/service/block_storage/block_store/device/ram/test" 93 "components/service/block_storage/block_store/device/null" 94 "components/service/block_storage/block_store/device/file" 95 "components/service/block_storage/block_store/device/file/test" 96 "components/service/block_storage/block_store/device/rpmb" 97 "components/service/block_storage/block_store/client" 98 "components/service/block_storage/block_store/partitioned" 99 "components/service/block_storage/block_store/partitioned/test" 100 "components/service/block_storage/provider" 101 "components/service/block_storage/provider/serializer/packed-c" 102 "components/service/block_storage/config/ref" 103 "components/service/block_storage/config/gpt" 104 "components/service/block_storage/factory/ref_ram" 105 "components/service/block_storage/factory/ref_ram_gpt" 106 "components/service/block_storage/factory/client" 107 "components/service/block_storage/factory/rpmb" 108 "components/service/fwu/agent" 109 "components/service/fwu/common" 110 "components/service/fwu/fw_store/banked" 111 "components/service/fwu/fw_store/banked/metadata_serializer/v1" 112 "components/service/fwu/fw_store/banked/metadata_serializer/v2" 113 "components/service/fwu/fw_store/banked/test" 114 "components/service/fwu/installer" 115 "components/service/fwu/installer/raw" 116 "components/service/fwu/installer/raw/test" 117 "components/service/fwu/installer/copy" 118 "components/service/fwu/installer/copy/test" 119 "components/service/fwu/installer/factory/default" 120 "components/service/fwu/installer/factory/default/test" 121 "components/service/fwu/inspector/mock" 122 "components/service/fwu/inspector/direct" 123 "components/service/fwu/provider" 124 "components/service/fwu/provider/serializer" 125 "components/service/fwu/psa_fwu_m/agent" 126 "components/service/fwu/psa_fwu_m/agent/test" 127 "components/service/fwu/psa_fwu_m/interface/mock" 128 "components/service/fwu/psa_fwu_m/interface/mock/test" 129 "components/service/fwu/test/fwu_client/direct" 130 "components/service/fwu/test/fwu_dut" 131 "components/service/fwu/test/fwu_dut/sim" 132 "components/service/fwu/test/fwu_dut_factory/sim" 133 "components/service/fwu/test/metadata_checker" 134 "components/service/fwu/test/metadata_fetcher/volume" 135 "components/service/fwu/test/image_directory_checker" 136 "components/service/fwu/test/ref_scenarios" 137 "components/service/crypto/include" 138 "components/service/crypto/client/psa" 139 "components/service/crypto/client/cpp" 140 "components/service/crypto/client/cpp/protocol/protobuf" 141 "components/service/crypto/client/cpp/protocol/packed-c" 142 "components/service/crypto/provider" 143 "components/service/crypto/provider/serializer/protobuf" 144 "components/service/crypto/provider/serializer/packed-c" 145 "components/service/crypto/provider/extension/hash" 146 "components/service/crypto/provider/extension/hash/serializer/packed-c" 147 "components/service/crypto/provider/extension/cipher" 148 "components/service/crypto/provider/extension/cipher/serializer/packed-c" 149 "components/service/crypto/provider/extension/key_derivation" 150 "components/service/crypto/provider/extension/key_derivation/serializer/packed-c" 151 "components/service/crypto/provider/extension/mac" 152 "components/service/crypto/provider/extension/mac/serializer/packed-c" 153 "components/service/crypto/provider/extension/aead" 154 "components/service/crypto/provider/extension/aead/serializer/packed-c" 155 "components/service/crypto/provider/test" 156 "components/service/crypto/backend/mbedcrypto" 157 "components/service/crypto/factory/full" 158 "components/service/crypto/test/unit" 159 "components/service/crypto/test/service" 160 "components/service/crypto/test/service/protobuf" 161 "components/service/crypto/test/service/packed-c" 162 "components/service/crypto/test/service/extension/hash" 163 "components/service/crypto/test/service/extension/hash/packed-c" 164 "components/service/crypto/test/service/extension/cipher" 165 "components/service/crypto/test/service/extension/cipher/packed-c" 166 "components/service/crypto/test/service/extension/mac" 167 "components/service/crypto/test/service/extension/mac/packed-c" 168 "components/service/crypto/test/service/extension/key_derivation" 169 "components/service/crypto/test/service/extension/key_derivation/packed-c" 170 "components/service/crypto/test/protocol" 171 "components/service/crypto/test/security/standalone" 172 "components/service/rpmb/backend" 173 "components/service/rpmb/backend/emulated" 174 "components/service/rpmb/backend/mock" 175 "components/service/rpmb/backend/mock/test" 176 "components/service/rpmb/client" 177 "components/service/rpmb/frontend" 178 "components/service/rpmb/frontend/platform/default" 179 "components/service/rpmb/frontend/platform/mock" 180 "components/service/rpmb/frontend/platform/mock/test" 181 "components/service/rpmb/frontend/test" 182 "components/service/rpmb/provider" 183 "components/service/secure_storage/include" 184 "components/service/secure_storage/frontend/psa/its" 185 "components/service/secure_storage/frontend/psa/its/test" 186 "components/service/secure_storage/frontend/psa/ps" 187 "components/service/secure_storage/frontend/psa/ps/test" 188 "components/service/secure_storage/frontend/secure_storage_provider" 189 "components/service/secure_storage/backend/secure_storage_client" 190 "components/service/secure_storage/backend/secure_storage_client/test" 191 "components/service/secure_storage/backend/null_store" 192 "components/service/secure_storage/backend/mock_store" 193 "components/service/secure_storage/backend/mock_store/test" 194 "components/service/secure_storage/backend/secure_flash_store" 195 "components/service/secure_storage/backend/secure_flash_store/test" 196 "components/service/secure_storage/backend/secure_flash_store/flash_fs" 197 "components/service/secure_storage/backend/secure_flash_store/flash" 198 "components/service/secure_storage/backend/secure_flash_store/flash/ram" 199 "components/service/secure_storage/backend/secure_flash_store/flash/block_store_adapter" 200 "components/service/test_runner/provider" 201 "components/service/test_runner/provider/serializer/packed-c" 202 "components/service/test_runner/provider/backend/null" 203 "components/service/uefi/smm_variable/provider" 204 "components/service/uefi/smm_variable/backend" 205 "components/service/uefi/smm_variable/backend/test" 206 "components/media/disk" 207 "components/media/disk/disk_images" 208 "components/media/disk/formatter" 209 "components/media/disk/gpt_iterator" 210 "components/media/disk/test" 211 "components/media/volume" 212 "components/media/volume/index" 213 "components/media/volume/base_io_dev" 214 "components/media/volume/block_volume" 215 "components/media/volume/block_volume/test" 216 "protocols/rpc/common/protobuf" 217 "protocols/rpc/common/packed-c" 218 "protocols/service/crypto/packed-c" 219 "protocols/service/crypto/protobuf" 220 "protocols/service/secure_storage/packed-c" 221) 222 223#------------------------------------------------------------------------------- 224# Component configurations 225# 226#------------------------------------------------------------------------------- 227target_compile_definitions(component-test PRIVATE 228 "TRACE_PREFIX=\"TEST\"" 229 "TRACE_LEVEL=0" 230) 231 232#------------------------------------------------------------------------------- 233# Components used from external projects 234# 235#------------------------------------------------------------------------------- 236 237# Nanopb 238include(${TS_ROOT}/external/nanopb/nanopb.cmake) 239target_link_libraries(component-test PRIVATE nanopb::protobuf-nanopb-static) 240protobuf_generate_all(TGT "component-test" NAMESPACE "protobuf" BASE_DIR "${TS_ROOT}/protocols") 241 242# MbedTLS 243set(MBEDTLS_CONFIG_FILE "${TS_ROOT}/external/MbedTLS/config/crypto_provider_x509.h" 244 CACHE STRING "Configuration file for Mbed TLS" FORCE) 245include(${TS_ROOT}/external/MbedTLS/MbedTLS.cmake) 246target_link_libraries(component-test PRIVATE MbedTLS::mbedcrypto) 247target_link_libraries(component-test PRIVATE MbedTLS::mbedx509) 248 249# Pass the location of the mbedtls config file to C preprocessor. 250target_compile_definitions(component-test PRIVATE 251 MBEDTLS_CONFIG_FILE="${MBEDTLS_CONFIG_FILE}" 252) 253 254# Qcbor 255include(${TS_ROOT}/external/qcbor/qcbor.cmake) 256target_link_libraries(component-test PRIVATE qcbor) 257 258# t_cose 259include(${TS_ROOT}/external/t_cose/t_cose.cmake) 260target_link_libraries(component-test PRIVATE t_cose) 261 262#------------------------------------------------------------------------------- 263# Define install content. 264# 265#------------------------------------------------------------------------------- 266if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) 267 set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/install CACHE PATH "location to install build output to." FORCE) 268endif() 269install(TARGETS component-test 270 RUNTIME DESTINATION ${TS_ENV}/bin 271 PUBLIC_HEADER DESTINATION ${TS_ENV}/include) 272