blob: 806ebde24f1c69f3aab5cdb2561df524abdc2a75 [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/
Øyvind Rønningstad1dab74b2020-12-01 15:26:39 +010015 DESTINATION ${CMAKE_BINARY_DIR}/install/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)
20set(EXPORT_INC_DIR ${CMAKE_BINARY_DIR}/install/export/tfm/include)
21set(EXPORT_SRC_DIR ${CMAKE_BINARY_DIR}/install/export/tfm/src)
22
David Hub24aead2020-10-17 19:46:19 +080023# export veneer lib
24if (NOT TFM_MULTI_CORE_TOPOLOGY)
Raef Coles25fc1752020-11-24 12:04:42 +000025 install(FILES ${CMAKE_BINARY_DIR}/secure_fw/s_veneers.o
David Hub24aead2020-10-17 19:46:19 +080026 DESTINATION ${CMAKE_BINARY_DIR}/install/export/tfm/lib)
27endif()
28
Raef Coles035c83b2020-09-29 10:32:52 +010029####################### export headers #########################################
30
31install(FILES ${INTERFACE_INC_DIR}/psa/client.h
32 ${INTERFACE_INC_DIR}/psa/error.h
33 DESTINATION ${EXPORT_INC_DIR}/psa)
34
35install(FILES ${INTERFACE_INC_DIR}/os_wrapper/common.h
36 ${INTERFACE_INC_DIR}/os_wrapper/mutex.h
Charley Chue5fa2d02020-11-13 10:00:24 -080037 ${INTERFACE_INC_DIR}/os_wrapper/semaphore.h
38 ${INTERFACE_INC_DIR}/os_wrapper/thread.h
39 ${INTERFACE_INC_DIR}/os_wrapper/tick.h
Raef Coles035c83b2020-09-29 10:32:52 +010040 DESTINATION ${EXPORT_INC_DIR}/os_wrapper)
41
42install(FILES ${CMAKE_BINARY_DIR}/generated/interface/include/psa_manifest/sid.h
43 DESTINATION ${EXPORT_INC_DIR}/psa_manifest)
44
45install(FILES ${INTERFACE_INC_DIR}/tfm_api.h
46 ${INTERFACE_INC_DIR}/tfm_ns_interface.h
47 ${INTERFACE_INC_DIR}/tfm_ns_svc.h
48 DESTINATION ${EXPORT_INC_DIR})
49
50install(FILES ${INTERFACE_INC_DIR}/ext/tz_context.h
51 DESTINATION ${EXPORT_INC_DIR}/ext)
52
53if (TFM_MULTI_CORE_TOPOLOGY)
54 install(FILES ${INTERFACE_INC_DIR}/tfm_multi_core_api.h
55 ${INTERFACE_INC_DIR}/tfm_ns_mailbox.h
56 ${INTERFACE_INC_DIR}/tfm_mailbox.h
57 DESTINATION ${EXPORT_INC_DIR})
58else()
59 install(FILES ${CMAKE_BINARY_DIR}/generated/interface/include/tfm_veneers.h
60 DESTINATION ${EXPORT_INC_DIR}/tfm/veneers)
61endif()
62
63if (TFM_NS_CLIENT_IDENTIFICATION)
64 install(FILES ${INTERFACE_INC_DIR}/tfm_nspm_api.h
65 ${INTERFACE_INC_DIR}/tfm_nspm_svc_handler.h
66 DESTINATION ${EXPORT_INC_DIR})
67endif()
68
69if (TFM_PARTITION_PROTECTED_STORAGE)
70 install(FILES ${INTERFACE_INC_DIR}/psa/protected_storage.h
71 DESTINATION ${EXPORT_INC_DIR}/psa)
72endif()
73
74if (TFM_PARTITION_INTERNAL_TRUSTED_STORAGE)
75 install(FILES ${INTERFACE_INC_DIR}/psa/internal_trusted_storage.h
76 ${INTERFACE_INC_DIR}/psa/storage_common.h
77 DESTINATION ${EXPORT_INC_DIR}/psa)
78endif()
79
80if (TFM_PARTITION_CRYPTO)
81 install(FILES ${INTERFACE_INC_DIR}/psa/crypto_extra.h
82 ${INTERFACE_INC_DIR}/psa/crypto_compat.h
83 ${INTERFACE_INC_DIR}/psa/crypto.h
84 ${INTERFACE_INC_DIR}/psa/crypto_client_struct.h
85 ${INTERFACE_INC_DIR}/psa/crypto_sizes.h
86 ${INTERFACE_INC_DIR}/psa/crypto_struct.h
87 ${INTERFACE_INC_DIR}/psa/crypto_types.h
88 ${INTERFACE_INC_DIR}/psa/crypto_values.h
89 DESTINATION ${EXPORT_INC_DIR}/psa)
90 install(FILES ${INTERFACE_INC_DIR}/tfm_crypto_defs.h
91 DESTINATION ${EXPORT_INC_DIR})
92endif()
93
94if (TFM_PARTITION_INITIAL_ATTESTATION)
95 install(FILES ${INTERFACE_INC_DIR}/psa/initial_attestation.h
96 DESTINATION ${EXPORT_INC_DIR}/psa)
97endif()
98
99if(TFM_PARTITION_AUDIT_LOG)
100 install(FILES ${INTERFACE_INC_DIR}/psa_audit_api.h
101 ${INTERFACE_INC_DIR}/psa_audit_defs.h
102 DESTINATION ${EXPORT_INC_DIR})
103endif()
104
105if(TFM_PARTITION_PLATFORM)
106 install(FILES ${INTERFACE_INC_DIR}/tfm_platform_api.h
107 DESTINATION ${EXPORT_INC_DIR})
108endif()
109
110####################### export sources #########################################
111
112if (TFM_MULTI_CORE_TOPOLOGY)
113 install(FILES ${INTERFACE_SRC_DIR}/tfm_ns_mailbox.c
114 ${INTERFACE_SRC_DIR}/tfm_multi_core_api.c
115 ${INTERFACE_SRC_DIR}/tfm_multi_core_psa_ns_api.c
116 DESTINATION ${EXPORT_SRC_DIR})
117else()
118 install(FILES ${INTERFACE_SRC_DIR}/tfm_ns_interface.c
119 DESTINATION ${EXPORT_SRC_DIR})
120
121 if(TFM_PSA_API)
122 install(FILES ${INTERFACE_SRC_DIR}/tfm_psa_ns_api.c
123 DESTINATION ${EXPORT_SRC_DIR})
124 endif()
125endif()
126
127if (TFM_NS_CLIENT_IDENTIFICATION)
128 install(FILES ${INTERFACE_SRC_DIR}/tfm_nspm_api.c
129 ${INTERFACE_SRC_DIR}/tfm_nspm_svc_handler.c
130 DESTINATION ${EXPORT_SRC_DIR})
131endif()
132
133if (TFM_PARTITION_PROTECTED_STORAGE)
134 if (TFM_PSA_API)
135 install(FILES ${INTERFACE_SRC_DIR}/tfm_ps_ipc_api.c
136 DESTINATION ${EXPORT_SRC_DIR})
137 else()
138 install(FILES ${INTERFACE_SRC_DIR}/tfm_ps_func_api.c
139 DESTINATION ${EXPORT_SRC_DIR})
140 endif()
141endif()
142
143if (TFM_PARTITION_INTERNAL_TRUSTED_STORAGE)
144 if (TFM_PSA_API)
145 install(FILES ${INTERFACE_SRC_DIR}/tfm_its_ipc_api.c
146 DESTINATION ${EXPORT_SRC_DIR})
147 else()
148 install(FILES ${INTERFACE_SRC_DIR}/tfm_its_func_api.c
149 DESTINATION ${EXPORT_SRC_DIR})
150 endif()
151endif()
152
153if (TFM_PARTITION_CRYPTO)
154 if (TFM_PSA_API)
155 install(FILES ${INTERFACE_SRC_DIR}/tfm_crypto_ipc_api.c
156 DESTINATION ${EXPORT_SRC_DIR})
157 else()
158 install(FILES ${INTERFACE_SRC_DIR}/tfm_crypto_func_api.c
159 DESTINATION ${EXPORT_SRC_DIR})
160 endif()
161endif()
162
163if (TFM_PARTITION_INITIAL_ATTESTATION)
164 if (TFM_PSA_API)
165 install(FILES ${INTERFACE_SRC_DIR}/tfm_initial_attestation_ipc_api.c
166 DESTINATION ${EXPORT_SRC_DIR})
167 else()
168 install(FILES ${INTERFACE_SRC_DIR}/tfm_initial_attestation_func_api.c
169 DESTINATION ${EXPORT_SRC_DIR})
170 endif()
171endif()
172
173if(TFM_PARTITION_AUDIT_LOG)
174 install(FILES ${INTERFACE_SRC_DIR}/tfm_audit_func_api.c
175 DESTINATION ${EXPORT_SRC_DIR})
176endif()
177
178if(TFM_PARTITION_PLATFORM)
179 if(TFM_PSA_API)
180 install(FILES ${INTERFACE_SRC_DIR}/tfm_platform_ipc_api.c
181 DESTINATION ${EXPORT_SRC_DIR})
182 else()
183 install(FILES ${INTERFACE_SRC_DIR}/tfm_platform_func_api.c
184 DESTINATION ${EXPORT_SRC_DIR})
185 endif()
186endif()