blob: e7722c3d5af4462d50a54787f8b94b6110bc80ad [file] [log] [blame]
Raef Colesa1f504c2020-07-10 09:58:55 +01001#-------------------------------------------------------------------------------
2# Copyright (c) 2020, Arm Limited. All rights reserved.
Charley Chue5fa2d02020-11-13 10:00:24 -08003# Copyright (c) 2020, Cypress Semiconductor Corporation. All rights reserved.
Raef Colesa1f504c2020-07-10 09:58:55 +01004#
5# SPDX-License-Identifier: BSD-3-Clause
6#
7#-------------------------------------------------------------------------------
8
Raef Coles035c83b2020-09-29 10:32:52 +01009# Generate correct filename
Raef Colesa1f504c2020-07-10 09:58:55 +010010string(TOUPPER ${TFM_PLATFORM} TFM_PLATFORM_UPPERCASE)
11string(REGEX REPLACE "-" "_" TFM_PLATFORM_UPPERCASE_UNDERSCORE ${TFM_PLATFORM_UPPERCASE})
Øyvind Rønningstad1dab74b2020-12-01 15:26:39 +010012string(REGEX REPLACE "^(\\.\\.([\\/\\\\]))+" "EXTERNAL\\2" TFM_PLATFORM_UPPERCASE_UNDERSCORE_NO_PARENT_DIR ${TFM_PLATFORM_UPPERCASE_UNDERSCORE})
Raef Colesa1f504c2020-07-10 09:58:55 +010013
14install(DIRECTORY ${CMAKE_BINARY_DIR}/bin/
Raef Colesa198a442020-11-24 11:42:53 +000015 DESTINATION ${TFM_INSTALL_PATH}/outputs/${TFM_PLATFORM_UPPERCASE_UNDERSCORE_NO_PARENT_DIR}
Raef Coles035c83b2020-09-29 10:32:52 +010016)
17
18set(INTERFACE_INC_DIR ${CMAKE_SOURCE_DIR}/interface/include)
19set(INTERFACE_SRC_DIR ${CMAKE_SOURCE_DIR}/interface/src)
Raef Colesa198a442020-11-24 11:42:53 +000020set(EXPORT_INC_DIR ${TFM_INSTALL_PATH}/export/tfm/include)
21set(EXPORT_SRC_DIR ${TFM_INSTALL_PATH}/export/tfm/src)
22set(EXPORT_LIB_DIR ${TFM_INSTALL_PATH}/export/tfm/lib)
Raef Coles035c83b2020-09-29 10:32:52 +010023
David Hub24aead2020-10-17 19:46:19 +080024# export veneer lib
25if (NOT TFM_MULTI_CORE_TOPOLOGY)
Raef Coles25fc1752020-11-24 12:04:42 +000026 install(FILES ${CMAKE_BINARY_DIR}/secure_fw/s_veneers.o
Raef Colesa198a442020-11-24 11:42:53 +000027 DESTINATION ${EXPORT_LIB_DIR})
David Hub24aead2020-10-17 19:46:19 +080028endif()
29
Raef Coles035c83b2020-09-29 10:32:52 +010030####################### export headers #########################################
31
32install(FILES ${INTERFACE_INC_DIR}/psa/client.h
33 ${INTERFACE_INC_DIR}/psa/error.h
34 DESTINATION ${EXPORT_INC_DIR}/psa)
35
36install(FILES ${INTERFACE_INC_DIR}/os_wrapper/common.h
37 ${INTERFACE_INC_DIR}/os_wrapper/mutex.h
Charley Chue5fa2d02020-11-13 10:00:24 -080038 ${INTERFACE_INC_DIR}/os_wrapper/semaphore.h
39 ${INTERFACE_INC_DIR}/os_wrapper/thread.h
40 ${INTERFACE_INC_DIR}/os_wrapper/tick.h
Raef Coles035c83b2020-09-29 10:32:52 +010041 DESTINATION ${EXPORT_INC_DIR}/os_wrapper)
42
43install(FILES ${CMAKE_BINARY_DIR}/generated/interface/include/psa_manifest/sid.h
44 DESTINATION ${EXPORT_INC_DIR}/psa_manifest)
45
46install(FILES ${INTERFACE_INC_DIR}/tfm_api.h
47 ${INTERFACE_INC_DIR}/tfm_ns_interface.h
48 ${INTERFACE_INC_DIR}/tfm_ns_svc.h
49 DESTINATION ${EXPORT_INC_DIR})
50
51install(FILES ${INTERFACE_INC_DIR}/ext/tz_context.h
52 DESTINATION ${EXPORT_INC_DIR}/ext)
53
54if (TFM_MULTI_CORE_TOPOLOGY)
55 install(FILES ${INTERFACE_INC_DIR}/tfm_multi_core_api.h
56 ${INTERFACE_INC_DIR}/tfm_ns_mailbox.h
57 ${INTERFACE_INC_DIR}/tfm_mailbox.h
58 DESTINATION ${EXPORT_INC_DIR})
59else()
60 install(FILES ${CMAKE_BINARY_DIR}/generated/interface/include/tfm_veneers.h
61 DESTINATION ${EXPORT_INC_DIR}/tfm/veneers)
62endif()
63
64if (TFM_NS_CLIENT_IDENTIFICATION)
65 install(FILES ${INTERFACE_INC_DIR}/tfm_nspm_api.h
66 ${INTERFACE_INC_DIR}/tfm_nspm_svc_handler.h
67 DESTINATION ${EXPORT_INC_DIR})
68endif()
69
70if (TFM_PARTITION_PROTECTED_STORAGE)
71 install(FILES ${INTERFACE_INC_DIR}/psa/protected_storage.h
72 DESTINATION ${EXPORT_INC_DIR}/psa)
73endif()
74
75if (TFM_PARTITION_INTERNAL_TRUSTED_STORAGE)
76 install(FILES ${INTERFACE_INC_DIR}/psa/internal_trusted_storage.h
77 ${INTERFACE_INC_DIR}/psa/storage_common.h
78 DESTINATION ${EXPORT_INC_DIR}/psa)
79endif()
80
81if (TFM_PARTITION_CRYPTO)
82 install(FILES ${INTERFACE_INC_DIR}/psa/crypto_extra.h
83 ${INTERFACE_INC_DIR}/psa/crypto_compat.h
84 ${INTERFACE_INC_DIR}/psa/crypto.h
85 ${INTERFACE_INC_DIR}/psa/crypto_client_struct.h
86 ${INTERFACE_INC_DIR}/psa/crypto_sizes.h
87 ${INTERFACE_INC_DIR}/psa/crypto_struct.h
88 ${INTERFACE_INC_DIR}/psa/crypto_types.h
89 ${INTERFACE_INC_DIR}/psa/crypto_values.h
90 DESTINATION ${EXPORT_INC_DIR}/psa)
91 install(FILES ${INTERFACE_INC_DIR}/tfm_crypto_defs.h
92 DESTINATION ${EXPORT_INC_DIR})
93endif()
94
95if (TFM_PARTITION_INITIAL_ATTESTATION)
96 install(FILES ${INTERFACE_INC_DIR}/psa/initial_attestation.h
97 DESTINATION ${EXPORT_INC_DIR}/psa)
98endif()
99
100if(TFM_PARTITION_AUDIT_LOG)
101 install(FILES ${INTERFACE_INC_DIR}/psa_audit_api.h
102 ${INTERFACE_INC_DIR}/psa_audit_defs.h
103 DESTINATION ${EXPORT_INC_DIR})
104endif()
105
106if(TFM_PARTITION_PLATFORM)
107 install(FILES ${INTERFACE_INC_DIR}/tfm_platform_api.h
108 DESTINATION ${EXPORT_INC_DIR})
109endif()
110
111####################### export sources #########################################
112
113if (TFM_MULTI_CORE_TOPOLOGY)
114 install(FILES ${INTERFACE_SRC_DIR}/tfm_ns_mailbox.c
115 ${INTERFACE_SRC_DIR}/tfm_multi_core_api.c
116 ${INTERFACE_SRC_DIR}/tfm_multi_core_psa_ns_api.c
117 DESTINATION ${EXPORT_SRC_DIR})
118else()
119 install(FILES ${INTERFACE_SRC_DIR}/tfm_ns_interface.c
120 DESTINATION ${EXPORT_SRC_DIR})
121
122 if(TFM_PSA_API)
123 install(FILES ${INTERFACE_SRC_DIR}/tfm_psa_ns_api.c
124 DESTINATION ${EXPORT_SRC_DIR})
125 endif()
126endif()
127
128if (TFM_NS_CLIENT_IDENTIFICATION)
129 install(FILES ${INTERFACE_SRC_DIR}/tfm_nspm_api.c
130 ${INTERFACE_SRC_DIR}/tfm_nspm_svc_handler.c
131 DESTINATION ${EXPORT_SRC_DIR})
132endif()
133
134if (TFM_PARTITION_PROTECTED_STORAGE)
135 if (TFM_PSA_API)
136 install(FILES ${INTERFACE_SRC_DIR}/tfm_ps_ipc_api.c
137 DESTINATION ${EXPORT_SRC_DIR})
138 else()
139 install(FILES ${INTERFACE_SRC_DIR}/tfm_ps_func_api.c
140 DESTINATION ${EXPORT_SRC_DIR})
141 endif()
142endif()
143
144if (TFM_PARTITION_INTERNAL_TRUSTED_STORAGE)
145 if (TFM_PSA_API)
146 install(FILES ${INTERFACE_SRC_DIR}/tfm_its_ipc_api.c
147 DESTINATION ${EXPORT_SRC_DIR})
148 else()
149 install(FILES ${INTERFACE_SRC_DIR}/tfm_its_func_api.c
150 DESTINATION ${EXPORT_SRC_DIR})
151 endif()
152endif()
153
154if (TFM_PARTITION_CRYPTO)
155 if (TFM_PSA_API)
156 install(FILES ${INTERFACE_SRC_DIR}/tfm_crypto_ipc_api.c
157 DESTINATION ${EXPORT_SRC_DIR})
158 else()
159 install(FILES ${INTERFACE_SRC_DIR}/tfm_crypto_func_api.c
160 DESTINATION ${EXPORT_SRC_DIR})
161 endif()
162endif()
163
164if (TFM_PARTITION_INITIAL_ATTESTATION)
165 if (TFM_PSA_API)
166 install(FILES ${INTERFACE_SRC_DIR}/tfm_initial_attestation_ipc_api.c
167 DESTINATION ${EXPORT_SRC_DIR})
168 else()
169 install(FILES ${INTERFACE_SRC_DIR}/tfm_initial_attestation_func_api.c
170 DESTINATION ${EXPORT_SRC_DIR})
171 endif()
172endif()
173
174if(TFM_PARTITION_AUDIT_LOG)
175 install(FILES ${INTERFACE_SRC_DIR}/tfm_audit_func_api.c
176 DESTINATION ${EXPORT_SRC_DIR})
177endif()
178
179if(TFM_PARTITION_PLATFORM)
180 if(TFM_PSA_API)
181 install(FILES ${INTERFACE_SRC_DIR}/tfm_platform_ipc_api.c
182 DESTINATION ${EXPORT_SRC_DIR})
183 else()
184 install(FILES ${INTERFACE_SRC_DIR}/tfm_platform_func_api.c
185 DESTINATION ${EXPORT_SRC_DIR})
186 endif()
187endif()