#------------------------------------------------------------------------------- # Copyright (c) 2020-2022, Arm Limited. All rights reserved. # Copyright (c) 2022 Cypress Semiconductor Corporation (an Infineon company) # or an affiliate of Cypress Semiconductor Corporation. All rights reserved. # # SPDX-License-Identifier: BSD-3-Clause # #------------------------------------------------------------------------------- cmake_minimum_required(VERSION 3.15) cmake_policy(SET CMP0076 NEW) cmake_policy(SET CMP0079 NEW) # Generate framework feature set(PSA_FRAMEWORK_ISOLATION_LEVEL ${TFM_ISOLATION_LEVEL}) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/psa/framework_feature.h.in ${CMAKE_BINARY_DIR}/generated/interface/include/psa/framework_feature.h @ONLY) if (EXISTS ${CMAKE_SOURCE_DIR}/platform/ext/target/${TFM_PLATFORM}/preload_ns.cmake) include(${CMAKE_SOURCE_DIR}/platform/ext/target/${TFM_PLATFORM}/preload_ns.cmake) tfm_toolchain_reload_compiler() endif() ###################### PSA interface (header only) ############################# add_library(psa_interface INTERFACE) target_include_directories(psa_interface INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_BINARY_DIR}/generated/interface/include $<$:${CMAKE_CURRENT_SOURCE_DIR}/include/multi_core> ) target_link_libraries(psa_interface INTERFACE tfm_config tfm_partition_defs ) target_compile_definitions(psa_interface INTERFACE $<$:CONFIG_TFM_ENABLE_CTX_MGMT> $<$:TFM_LVL=${TFM_ISOLATION_LEVEL}> $<$:CONFIG_TFM_USE_TRUSTZONE> $<$:TFM_MULTI_CORE_TOPOLOGY> $<$:CONFIG_TFM_PARTITION_META> ) ###################### PSA api (S lib) ######################################### target_sources(tfm_sprt PRIVATE $<$:${CMAKE_CURRENT_SOURCE_DIR}/src/tfm_attest_api.c> $<$:${CMAKE_CURRENT_SOURCE_DIR}/src/tfm_crypto_api.c> $<$:${CMAKE_CURRENT_SOURCE_DIR}/src/tfm_fwu_api.c> $<$:${CMAKE_CURRENT_SOURCE_DIR}/src/tfm_its_api.c> $<$:${CMAKE_CURRENT_SOURCE_DIR}/src/tfm_platform_api.c> $<$:${CMAKE_CURRENT_SOURCE_DIR}/src/tfm_ps_api.c> ${CMAKE_CURRENT_SOURCE_DIR}/src/tfm_psa_call_pack.c ) target_compile_definitions(tfm_sprt PUBLIC CONFIG_TFM_BUILDING_SPE=1 ) ###################### Export configurations to NS ############################# if (TFM_MULTI_CORE_TOPOLOGY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/multi_core/tfm_mailbox_config.h.in ${CMAKE_BINARY_DIR}/generated/interface/include/tfm_mailbox_config.h NEWLINE_STYLE UNIX ) endif()