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