blob: ff0761f8a364e171de692b96b3225ba1e944c2b0 [file] [log] [blame]
Raef Colesa1f504c2020-07-10 09:58:55 +01001#-------------------------------------------------------------------------------
Anton Komlev8ab4f042025-06-03 21:13:07 +01002# SPDX-FileCopyrightText: Copyright The TrustedFirmware-M Contributors
Raef Colesa1f504c2020-07-10 09:58:55 +01003#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
7
Raef Colesa1f504c2020-07-10 09:58:55 +01008install(DIRECTORY ${CMAKE_BINARY_DIR}/bin/
Anton Komlev3dd98632023-09-20 16:26:30 +01009 DESTINATION bin
Raef Coles035c83b2020-09-29 10:32:52 +010010)
11
David Hub24aead2020-10-17 19:46:19 +080012# export veneer lib
Chris Brandca819022022-07-19 09:25:15 -070013if (CONFIG_TFM_USE_TRUSTZONE)
Raef Coles25fc1752020-11-24 12:04:42 +000014 install(FILES ${CMAKE_BINARY_DIR}/secure_fw/s_veneers.o
Raef Coles4fed4632020-12-08 12:56:47 +000015 DESTINATION ${INSTALL_INTERFACE_LIB_DIR})
David Hub24aead2020-10-17 19:46:19 +080016endif()
17
Raef Coles035c83b2020-09-29 10:32:52 +010018####################### export headers #########################################
19
Antonio de Angelis2fffac92025-01-20 14:03:35 +000020if (BL1 AND PLATFORM_DEFAULT_BL1)
21 install(DIRECTORY ${BL1_1_CONFIG_DIR}/
22 DESTINATION ${INSTALL_PLATFORM_NS_DIR}/bl1_1_config)
23
24 install(DIRECTORY ${BL1_2_CONFIG_DIR}/
25 DESTINATION ${INSTALL_PLATFORM_NS_DIR}/bl1_2_config)
26endif()
27
Nicola Mazzucato6414e292025-05-09 22:05:05 +010028install(FILES ${INTERFACE_INC_DIR}/psa/api_broker.h
29 ${INTERFACE_INC_DIR}/psa/client.h
30 ${INTERFACE_INC_DIR}/hybrid_platform/api_broker_defs.h
Raef Coles035c83b2020-09-29 10:32:52 +010031 ${INTERFACE_INC_DIR}/psa/error.h
Raef Coles4fed4632020-12-08 12:56:47 +000032 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
Raef Coles035c83b2020-09-29 10:32:52 +010033
Raef Coles035c83b2020-09-29 10:32:52 +010034install(FILES ${CMAKE_BINARY_DIR}/generated/interface/include/psa_manifest/sid.h
Raef Coles4fed4632020-12-08 12:56:47 +000035 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa_manifest)
Raef Coles035c83b2020-09-29 10:32:52 +010036
Kevin Peng27cf4de2023-10-26 16:04:46 +080037install(FILES ${CMAKE_BINARY_DIR}/generated/interface/include/config_impl.h
38 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
39
Kevin Peng0e340ea2023-08-15 17:51:44 +080040install(FILES ${INTERFACE_INC_DIR}/tfm_veneers.h
Raef Coles035c83b2020-09-29 10:32:52 +010041 ${INTERFACE_INC_DIR}/tfm_ns_interface.h
Raef Coles4fed4632020-12-08 12:56:47 +000042 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +010043
Sherry Zhnag482b88b2021-08-19 17:51:47 +080044install(FILES ${INTERFACE_INC_DIR}/tfm_ns_client_ext.h
45 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +010046
David Hu895cdc32023-01-16 19:19:25 +080047install(FILES ${CMAKE_SOURCE_DIR}/secure_fw/include/config_tfm.h
48 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
David Hu6d1a9b62023-02-22 16:54:04 +080049install(FILES ${CMAKE_SOURCE_DIR}/config/config_base.h
50 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Nicola Mazzucatob369b332025-01-02 09:11:57 +000051install(FILES ${CMAKE_SOURCE_DIR}/secure_fw/spm/include/tfm_hybrid_platform.h
52 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
David Hu895cdc32023-01-16 19:19:25 +080053
Summer Qin566e03b2022-10-08 17:27:42 +080054install(FILES ${INTERFACE_INC_DIR}/tfm_psa_call_pack.h
55 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
56install(FILES ${CMAKE_BINARY_DIR}/generated/interface/include/psa/framework_feature.h
57 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
Xinyu Zhang93899d02021-05-11 10:48:52 +080058
Chris Brandfbf3f462022-06-23 15:27:20 -070059if (TFM_PARTITION_NS_AGENT_MAILBOX)
David Hu04969a42020-06-14 21:25:35 +080060 install(FILES ${INTERFACE_INC_DIR}/multi_core/tfm_multi_core_api.h
61 ${INTERFACE_INC_DIR}/multi_core/tfm_ns_mailbox.h
62 ${INTERFACE_INC_DIR}/multi_core/tfm_mailbox.h
David Hucb915812021-12-27 14:22:04 +080063 ${INTERFACE_INC_DIR}/multi_core/tfm_ns_mailbox_test.h
David Hu186a1292021-09-13 09:05:52 +080064 ${CMAKE_BINARY_DIR}/generated/interface/include/tfm_mailbox_config.h
David Hu71f6dcc2023-10-18 11:52:21 +080065 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/multi_core)
Chris Brandfbf3f462022-06-23 15:27:20 -070066endif()
67
Mark Horvathfbc2c502022-09-09 16:16:07 +020068if (TFM_PARTITION_PROTECTED_STORAGE)
Raef Coles035c83b2020-09-29 10:32:52 +010069 install(FILES ${INTERFACE_INC_DIR}/psa/protected_storage.h
Jamie Fox133ce092023-11-01 18:42:42 +000070 ${INTERFACE_INC_DIR}/psa/storage_common.h
Raef Coles4fed4632020-12-08 12:56:47 +000071 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
David Hudc8cb9e2021-11-10 12:45:59 +080072 install(FILES ${INTERFACE_INC_DIR}/tfm_ps_defs.h
73 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +010074endif()
75
Mark Horvathfbc2c502022-09-09 16:16:07 +020076if (TFM_PARTITION_INTERNAL_TRUSTED_STORAGE)
Raef Coles035c83b2020-09-29 10:32:52 +010077 install(FILES ${INTERFACE_INC_DIR}/psa/internal_trusted_storage.h
78 ${INTERFACE_INC_DIR}/psa/storage_common.h
Raef Coles4fed4632020-12-08 12:56:47 +000079 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
David Hudc8cb9e2021-11-10 12:45:59 +080080 install(FILES ${INTERFACE_INC_DIR}/tfm_its_defs.h
81 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +010082endif()
83
Mark Horvathfbc2c502022-09-09 16:16:07 +020084if (TFM_PARTITION_CRYPTO)
Antonio de Angelis8bb98512024-01-16 14:13:36 +000085 install(FILES ${INTERFACE_INC_DIR}/psa/README.rst
86 ${INTERFACE_INC_DIR}/psa/build_info.h
Raef Coles035c83b2020-09-29 10:32:52 +010087 ${INTERFACE_INC_DIR}/psa/crypto.h
Antonio de Angelis8bb98512024-01-16 14:13:36 +000088 ${INTERFACE_INC_DIR}/psa/crypto_adjust_auto_enabled.h
Antonio de Angelisa0b00f42024-09-18 12:07:25 +010089 ${INTERFACE_INC_DIR}/psa/crypto_adjust_config_dependencies.h
Antonio de Angelis8bb98512024-01-16 14:13:36 +000090 ${INTERFACE_INC_DIR}/psa/crypto_adjust_config_key_pair_types.h
91 ${INTERFACE_INC_DIR}/psa/crypto_adjust_config_synonyms.h
92 ${INTERFACE_INC_DIR}/psa/crypto_builtin_composites.h
93 ${INTERFACE_INC_DIR}/psa/crypto_builtin_key_derivation.h
94 ${INTERFACE_INC_DIR}/psa/crypto_builtin_primitives.h
95 ${INTERFACE_INC_DIR}/psa/crypto_compat.h
96 ${INTERFACE_INC_DIR}/psa/crypto_driver_common.h
97 ${INTERFACE_INC_DIR}/psa/crypto_driver_contexts_composites.h
98 ${INTERFACE_INC_DIR}/psa/crypto_driver_contexts_key_derivation.h
99 ${INTERFACE_INC_DIR}/psa/crypto_driver_contexts_primitives.h
100 ${INTERFACE_INC_DIR}/psa/crypto_extra.h
101 ${INTERFACE_INC_DIR}/psa/crypto_legacy.h
Xinyu Zhangfce20372023-04-10 14:43:47 +0800102 ${INTERFACE_INC_DIR}/psa/crypto_platform.h
Antonio de Angelis8bb98512024-01-16 14:13:36 +0000103 ${INTERFACE_INC_DIR}/psa/crypto_se_driver.h
Raef Coles035c83b2020-09-29 10:32:52 +0100104 ${INTERFACE_INC_DIR}/psa/crypto_sizes.h
105 ${INTERFACE_INC_DIR}/psa/crypto_struct.h
106 ${INTERFACE_INC_DIR}/psa/crypto_types.h
107 ${INTERFACE_INC_DIR}/psa/crypto_values.h
Raef Coles4fed4632020-12-08 12:56:47 +0000108 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
Raef Coles035c83b2020-09-29 10:32:52 +0100109 install(FILES ${INTERFACE_INC_DIR}/tfm_crypto_defs.h
Raef Coles4fed4632020-12-08 12:56:47 +0000110 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Antonio de Angelis8bb98512024-01-16 14:13:36 +0000111 install(DIRECTORY ${INTERFACE_INC_DIR}/mbedtls
112 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100113endif()
114
Mark Horvathfbc2c502022-09-09 16:16:07 +0200115if (TFM_PARTITION_INITIAL_ATTESTATION)
David Hu9191b612023-06-08 12:02:39 +0800116 install(FILES ${CMAKE_BINARY_DIR}/generated/interface/include/psa/initial_attestation.h
Raef Coles4fed4632020-12-08 12:56:47 +0000117 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
David Hudc8cb9e2021-11-10 12:45:59 +0800118 install(FILES ${INTERFACE_INC_DIR}/tfm_attest_defs.h
David Hu32bd6152022-09-27 13:10:36 +0800119 ${INTERFACE_INC_DIR}/tfm_attest_iat_defs.h
David Hudc8cb9e2021-11-10 12:45:59 +0800120 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100121endif()
122
Mark Horvathfbc2c502022-09-09 16:16:07 +0200123if(TFM_PARTITION_PLATFORM)
Raef Coles035c83b2020-09-29 10:32:52 +0100124 install(FILES ${INTERFACE_INC_DIR}/tfm_platform_api.h
Raef Coles4fed4632020-12-08 12:56:47 +0000125 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100126endif()
127
Sherry Zhang07b42412021-01-07 14:19:41 +0800128if(TFM_PARTITION_FIRMWARE_UPDATE)
129 install(FILES ${INTERFACE_INC_DIR}/psa/update.h
Sherry Zhang73126e52022-02-15 14:27:49 +0800130 ${CMAKE_BINARY_DIR}/generated/interface/include/psa/fwu_config.h
Sherry Zhang07b42412021-01-07 14:19:41 +0800131 DESTINATION ${INSTALL_INTERFACE_INC_DIR}/psa)
132 install(FILES ${INTERFACE_INC_DIR}/tfm_fwu_defs.h
133 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
134endif()
135
David Hu32bd6152022-09-27 13:10:36 +0800136if(PLATFORM_DEFAULT_CRYPTO_KEYS)
137 install(DIRECTORY ${INTERFACE_INC_DIR}/crypto_keys
138 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
139endif()
140
Raef Coles035c83b2020-09-29 10:32:52 +0100141####################### export sources #########################################
142
Chris Brandfbf3f462022-06-23 15:27:20 -0700143if (TFM_PARTITION_NS_AGENT_MAILBOX)
David Hu04969a42020-06-14 21:25:35 +0800144 install(FILES ${INTERFACE_SRC_DIR}/multi_core/tfm_ns_mailbox.c
145 ${INTERFACE_SRC_DIR}/multi_core/tfm_multi_core_ns_api.c
146 ${INTERFACE_SRC_DIR}/multi_core/tfm_multi_core_psa_ns_api.c
David Hud5973452020-11-26 16:47:46 +0800147 ${INTERFACE_SRC_DIR}/multi_core/tfm_ns_mailbox_thread.c
Nicola Mazzucatof21b3002025-06-04 11:01:05 +0100148 ${INTERFACE_SRC_DIR}/multi_core/tfm_ns_mailbox_common.c
David Hu32bd6152022-09-27 13:10:36 +0800149 DESTINATION ${INSTALL_INTERFACE_SRC_DIR}/multi_core)
Chris Brandfbf3f462022-06-23 15:27:20 -0700150endif()
David Huf07f3f12021-04-06 18:03:33 +0800151
Chris Brandfbf3f462022-06-23 15:27:20 -0700152if (TFM_PARTITION_NS_AGENT_TZ)
Xinyu Zhang1c12d562023-10-24 12:02:22 +0800153 install(FILES ${INTERFACE_SRC_DIR}/tfm_tz_psa_ns_api.c
Chris Brandfbf3f462022-06-23 15:27:20 -0700154 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
155endif()
156
Chris Brand4ac274d2024-01-03 15:31:37 -0800157install(DIRECTORY ${INTERFACE_INC_DIR}/os_wrapper
158 DESTINATION ${INSTALL_INTERFACE_INC_DIR})
BohdanHunkof871df02023-02-03 14:36:41 +0200159
Chris Brandfbf3f462022-06-23 15:27:20 -0700160if (CONFIG_TFM_USE_TRUSTZONE)
BohdanHunkof871df02023-02-03 14:36:41 +0200161 install(DIRECTORY ${INTERFACE_SRC_DIR}/os_wrapper
David Huf07f3f12021-04-06 18:03:33 +0800162 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100163endif()
164
Nicola Mazzucato6414e292025-05-09 22:05:05 +0100165if (TFM_HYBRID_PLATFORM_API_BROKER)
166 install(DIRECTORY ${INTERFACE_SRC_DIR}/hybrid_platform
167 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
168endif()
169
Mark Horvathfbc2c502022-09-09 16:16:07 +0200170if (TFM_PARTITION_PROTECTED_STORAGE)
Summer Qind23bbb32022-10-18 15:30:06 +0800171 install(FILES ${INTERFACE_SRC_DIR}/tfm_ps_api.c
Summer Qin566e03b2022-10-08 17:27:42 +0800172 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100173endif()
174
Mark Horvathfbc2c502022-09-09 16:16:07 +0200175if (TFM_PARTITION_INTERNAL_TRUSTED_STORAGE)
Summer Qind23bbb32022-10-18 15:30:06 +0800176 install(FILES ${INTERFACE_SRC_DIR}/tfm_its_api.c
Summer Qin566e03b2022-10-08 17:27:42 +0800177 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100178endif()
179
Mark Horvathfbc2c502022-09-09 16:16:07 +0200180if (TFM_PARTITION_CRYPTO)
Summer Qind23bbb32022-10-18 15:30:06 +0800181 install(FILES ${INTERFACE_SRC_DIR}/tfm_crypto_api.c
Summer Qin566e03b2022-10-08 17:27:42 +0800182 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100183endif()
184
Mark Horvathfbc2c502022-09-09 16:16:07 +0200185if (TFM_PARTITION_INITIAL_ATTESTATION)
Summer Qind23bbb32022-10-18 15:30:06 +0800186 install(FILES ${INTERFACE_SRC_DIR}/tfm_attest_api.c
Summer Qin566e03b2022-10-08 17:27:42 +0800187 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100188endif()
189
Mark Horvathfbc2c502022-09-09 16:16:07 +0200190if(TFM_PARTITION_PLATFORM)
Summer Qind23bbb32022-10-18 15:30:06 +0800191 install(FILES ${INTERFACE_SRC_DIR}/tfm_platform_api.c
Summer Qin566e03b2022-10-08 17:27:42 +0800192 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Raef Coles035c83b2020-09-29 10:32:52 +0100193endif()
Raef Colesb6814d52020-12-08 13:15:40 +0000194
Raef Colesb6814d52020-12-08 13:15:40 +0000195##################### Export image signing information #########################
196
Raef Colescdf39312023-11-03 14:37:18 +0000197if(BL2 AND PLATFORM_DEFAULT_IMAGE_SIGNING)
Raef Colesb6814d52020-12-08 13:15:40 +0000198 install(DIRECTORY bl2/ext/mcuboot/scripts
Anton Komlevaee4b612023-05-14 17:38:36 +0100199 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}
200 PATTERN "scripts/*.py"
201 PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
202 GROUP_EXECUTE GROUP_READ
203 PATTERN "scripts/wrapper/*.py"
204 PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
205 GROUP_EXECUTE GROUP_READ)
206
207 install(DIRECTORY ${MCUBOOT_PATH}/scripts/imgtool
208 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/scripts)
Raef Colesb6814d52020-12-08 13:15:40 +0000209
210 if (MCUBOOT_ENC_IMAGES)
211 install(FILES ${MCUBOOT_KEY_ENC}
Raef Coles1d68b872023-11-06 16:33:34 +0000212 RENAME image_enc_key.pem
Alamy Liu2c13c032021-01-20 09:55:50 -0800213 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/keys)
Raef Colesb6814d52020-12-08 13:15:40 +0000214 endif()
215
Raef Coles1d68b872023-11-06 16:33:34 +0000216 install(FILES $<TARGET_OBJECTS:signing_layout_s>
Alamy Liu2c13c032021-01-20 09:55:50 -0800217 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/layout_files)
Raef Coles1d68b872023-11-06 16:33:34 +0000218 install(FILES ${MCUBOOT_KEY_S}
219 RENAME image_s_signing_private_key.pem
Bence Baloghde3e1212023-07-07 13:07:38 +0200220 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/keys)
David Hu76734222023-11-15 12:17:17 +0800221 # Specify the MCUBOOT_KEY_S path for NS build
222 set(MCUBOOT_INSTALL_KEY_S
223 ${INSTALL_IMAGE_SIGNING_DIR}/keys/image_s_signing_private_key.pem)
Raef Coles1d68b872023-11-06 16:33:34 +0000224 install(FILES $<TARGET_FILE_DIR:bl2>/image_s_signing_public_key.pem
Bence Balogh11074a22023-09-29 17:53:06 +0200225 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/keys)
Anton Komlevaee4b612023-05-14 17:38:36 +0100226
Raef Coles1d68b872023-11-06 16:33:34 +0000227 if(MCUBOOT_IMAGE_NUMBER GREATER 1)
228 install(FILES $<TARGET_OBJECTS:signing_layout_ns>
229 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/layout_files)
230 install(FILES ${MCUBOOT_KEY_NS}
231 RENAME image_ns_signing_private_key.pem
David Hu76734222023-11-15 12:17:17 +0800232 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/keys)
233 # Specify the MCUBOOT_KEY_NS path for NS build
234 set(MCUBOOT_INSTALL_KEY_NS
235 ${INSTALL_IMAGE_SIGNING_DIR}/keys/image_ns_signing_private_key.pem)
Raef Coles1d68b872023-11-06 16:33:34 +0000236 install(FILES $<TARGET_FILE_DIR:bl2>/image_ns_signing_public_key.pem
237 DESTINATION ${INSTALL_IMAGE_SIGNING_DIR}/keys)
238 endif()
Raef Colesb6814d52020-12-08 13:15:40 +0000239endif()
Sherry Zhang07b42412021-01-07 14:19:41 +0800240
241if(TFM_PARTITION_FIRMWARE_UPDATE)
Summer Qind23bbb32022-10-18 15:30:06 +0800242 install(FILES ${INTERFACE_SRC_DIR}/tfm_fwu_api.c
Summer Qin566e03b2022-10-08 17:27:42 +0800243 DESTINATION ${INSTALL_INTERFACE_SRC_DIR})
Sherry Zhang07b42412021-01-07 14:19:41 +0800244endif()
Chris Brand9edf0812022-07-05 14:18:42 -0700245
Jianliang Shenbd624ed2023-10-24 15:42:59 +0800246######################### Export common configurations #########################
David Hu895cdc32023-01-16 19:19:25 +0800247
Dávid Házie7932282023-11-11 23:59:53 +0100248install(FILES ${CMAKE_SOURCE_DIR}/config/cp_check.cmake
Jianliang Shenbd624ed2023-10-24 15:42:59 +0800249 DESTINATION ${INSTALL_CONFIG_DIR})
David Hu895cdc32023-01-16 19:19:25 +0800250
David Hu06017772023-11-07 18:22:42 +0800251################### Read recommended tf-m-tests version ########################
252
253include(${CMAKE_SOURCE_DIR}/lib/ext/tf-m-tests/read_version.cmake)
254
Anton Komlevaee4b612023-05-14 17:38:36 +0100255###################### Install NS platform sources #############################
Chris Brand9edf0812022-07-05 14:18:42 -0700256
Anton Komlevaee4b612023-05-14 17:38:36 +0100257install(CODE "MESSAGE(\"----- Installing platform NS -----\")")
258
Jamie Fox62683db2024-03-12 15:50:41 +0000259install(DIRECTORY $<BUILD_INTERFACE:${CMSIS_PATH}/CMSIS/Core/Include>
Jamie Fox1ec133d2024-06-20 16:20:15 +0100260 $<BUILD_INTERFACE:${CMSIS_PATH}/CMSIS/Driver/Include>
Gergely Korcsák3d54aca2024-02-05 17:29:58 +0100261 DESTINATION ${INSTALL_PLATFORM_NS_DIR}/ext/cmsis)
David Hu66bd9a02023-10-18 22:34:19 +0800262
263if(PLATFORM_DEFAULT_UART_STDOUT)
264 install(FILES ${PLATFORM_DIR}/ext/common/uart_stdout.c
265 ${PLATFORM_DIR}/ext/common/uart_stdout.h
266 DESTINATION ${INSTALL_PLATFORM_NS_DIR}/ext/common)
267endif()
Anton Komlevaee4b612023-05-14 17:38:36 +0100268
David Hu71f6dcc2023-10-18 11:52:21 +0800269install(DIRECTORY ${PLATFORM_DIR}/include
270 DESTINATION ${INSTALL_PLATFORM_NS_DIR})
271
Anton Komlevaee4b612023-05-14 17:38:36 +0100272install(FILES ${CMAKE_SOURCE_DIR}/cmake/spe-CMakeLists.cmake
Anton Komlev3dd98632023-09-20 16:26:30 +0100273 DESTINATION ${CMAKE_INSTALL_PREFIX}
Anton Komlevaee4b612023-05-14 17:38:36 +0100274 RENAME CMakeLists.txt)
275
David Huc28b9b22023-10-14 15:33:16 +0800276install(FILES ${PLATFORM_DIR}/ns/toolchain_ns_GNUARM.cmake
277 ${PLATFORM_DIR}/ns/toolchain_ns_ARMCLANG.cmake
David Hu2bbcb962023-11-01 14:29:53 +0800278 ${PLATFORM_DIR}/ns/toolchain_ns_IARARM.cmake
Matthew Dalzelleb375ba2025-02-05 16:23:45 +0000279 ${PLATFORM_DIR}/ns/toolchain_ns_CLANG.cmake
Anton Komlevaee4b612023-05-14 17:38:36 +0100280 DESTINATION ${INSTALL_CMAKE_DIR})
281
Anton Komlevaee4b612023-05-14 17:38:36 +0100282install(FILES
283 ${CMAKE_SOURCE_DIR}/lib/fih/inc/fih.h
284 ${PLATFORM_DIR}/include/tfm_plat_ns.h
285 DESTINATION ${INSTALL_PLATFORM_NS_DIR}/include)
286
287if (TARGET psa_crypto_config)
288# FIXIT: This is a temporal patch to reduce the change scope and simplify review.
289# In the future we shall decouple this target from tfm_config becuase
290# "psa_crypto_config" target exists not in all configurations.
291# Functionally "psa_crypto_config" provides only include path for Crypto accelerator.
292install(TARGETS tfm_config psa_crypto_config psa_interface
Anton Komlev3dd98632023-09-20 16:26:30 +0100293 DESTINATION ${CMAKE_INSTALL_PREFIX}
Anton Komlevaee4b612023-05-14 17:38:36 +0100294 EXPORT tfm-config
295 )
296else()
297 install(TARGETS tfm_config psa_interface
Anton Komlev3dd98632023-09-20 16:26:30 +0100298 DESTINATION ${CMAKE_INSTALL_PREFIX}
Anton Komlevaee4b612023-05-14 17:38:36 +0100299 EXPORT tfm-config
300 )
301endif()
302
303target_include_directories(psa_interface
304 INTERFACE
305 $<INSTALL_INTERFACE:interface/include>
306 )
307
308install(EXPORT tfm-config
309 FILE spe_export.cmake
310 DESTINATION ${INSTALL_CMAKE_DIR})
311
312configure_file(${CMAKE_SOURCE_DIR}/config/spe_config.cmake.in
313 ${INSTALL_CMAKE_DIR}/spe_config.cmake @ONLY)
David Hu9af4d7d2023-11-01 07:52:17 +0800314
315# Toolchain utils
Anton Komlev8ab4f042025-06-03 21:13:07 +0100316install(FILES
317 cmake/set_extensions.cmake
318 cmake/mcpu_features.cmake
David Hu9af4d7d2023-11-01 07:52:17 +0800319 DESTINATION ${INSTALL_CMAKE_DIR})