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