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