blob: 82dc4440cbde7ea20add6fc3aaf2a8203051c362 [file] [log] [blame]
Sadik Armagan8f397a12022-06-17 15:38:22 +01001#
2# Copyright © 2022 Arm Ltd and Contributors. All rights reserved.
3# SPDX-License-Identifier: MIT
4#
5
6cmake_minimum_required (VERSION 3.7.0)
7enable_language(ASM)
8project(armnn_support_library)
9
10set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -std=c++17 -Wall -fexceptions -Werror -Wno-unused-parameter -Wno-unused-private-field -Wno-unused-variable -Wno-attributes -Wno-format-security -Wno-extern-c-compat -Wno-invalid-partial-specialization -Wno-unneeded-internal-declaration -Wno-unused-function -DNN_COMPATIBILITY_LIBRARY_BUILD -DNN_DEBUGGABLE")
11set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden -DOPENSSL_SMALL -DBORINGSSL_ANDROID_SYSTEM -DBORINGSSL_SHARED_LIBRARY -DBORINGSSL_IMPLEMENTATION")
12
13set(CMAKE_POSITION_INDEPENDENT_CODE ON)
14
15include(GNUInstallDirs)
16
17SET(libnnapi_support_include_directories)
18list(APPEND libnnapi_support_include_directories
19 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/types/include/nnapi/
20 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/types/include/
21 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/
22 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/include
23 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/runtime/include
24 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/shim_and_sl/public
25 ${AOSP_MODULES_ROOT}/system/logging/liblog/include
26 ${AOSP_MODULES_ROOT}/system/libbase/include
27 ${AOSP_MODULES_ROOT}/frameworks/native/libs/nativewindow/include
28 ${AOSP_MODULES_ROOT}/system/core/libcutils/include
29 ${AOSP_MODULES_ROOT}/system/core/include
30 ${AOSP_MODULES_ROOT}/external/tensorflow
31 ${AOSP_MODULES_ROOT}/external/gemmlowp/
32 ${AOSP_MODULES_ROOT}/external/ruy/
33 ${AOSP_MODULES_ROOT}/external/eigen/
34 ${AOSP_MODULES_ROOT}/external/boringssl/src/include
35 ${AOSP_MODULES_ROOT}/external/boringssl/include)
36
37include_directories(${libnnapi_support_include_directories})
38
39set(base_sources)
40list(APPEND base_sources
41 ${AOSP_MODULES_ROOT}/system/libbase/abi_compatibility.cpp
42 ${AOSP_MODULES_ROOT}/system/libbase/posix_strerror_r.cpp
43 ${AOSP_MODULES_ROOT}/system/libbase/chrono_utils.cpp
44 ${AOSP_MODULES_ROOT}/system/libbase/cmsg.cpp
45 ${AOSP_MODULES_ROOT}/system/libbase/file.cpp
46 ${AOSP_MODULES_ROOT}/system/libbase/hex.cpp
47 ${AOSP_MODULES_ROOT}/system/libbase/logging.cpp
48 ${AOSP_MODULES_ROOT}/system/libbase/mapped_file.cpp
49 ${AOSP_MODULES_ROOT}/system/libbase/parsebool.cpp
50 ${AOSP_MODULES_ROOT}/system/libbase/parsenetaddress.cpp
51 ${AOSP_MODULES_ROOT}/system/libbase/process.cpp
52 ${AOSP_MODULES_ROOT}/system/libbase/properties.cpp
53 ${AOSP_MODULES_ROOT}/system/libbase/stringprintf.cpp
54 ${AOSP_MODULES_ROOT}/system/libbase/strings.cpp
55 ${AOSP_MODULES_ROOT}/system/libbase/test_utils.cpp
56 ${AOSP_MODULES_ROOT}/system/libbase/threads.cpp)
57add_library(base STATIC ${base_sources})
58target_include_directories (base PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
59target_include_directories (base PUBLIC ${libnnapi_support_include_directories})
60
61file(GLOB TYPES_CL_SOURCE_FILES
62 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/*Validation.cpp
63)
64
65set(neuralnetworks_types_cl_sources)
66list(APPEND neuralnetworks_types_cl_sources
67 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/types/src/DynamicCLDeps.cpp
68 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/types/src/SharedMemory.cpp
69 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/types/src/SharedMemoryAndroid.cpp
70 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/types/src/TypeUtils.cpp
71 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/types/src/OperationsValidationUtils.cpp
72 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/types/src/Types.cpp
73 ${TYPES_CL_SOURCE_FILES}
74 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/types/src/Validation.cpp)
75
76add_library(neuralnetworks_types_cl STATIC ${neuralnetworks_types_cl_sources})
77target_include_directories (neuralnetworks_types_cl PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
78target_include_directories (neuralnetworks_types_cl PUBLIC ${libnnapi_support_include_directories})
79
80set(neuralnetworks_common_cl_sources)
81list(APPEND neuralnetworks_common_cl_sources
82 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/BufferTracker.cpp
83 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/CpuExecutor.cpp
84 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/GraphDump.cpp
85 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/IndexedShapeWrapper.cpp
86 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/LegacyUtils.cpp
87 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/ModelUtils.cpp
88 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/MetaModel.cpp
89 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/OperationsExecutionUtils.cpp
90 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/types/src/OperationsUtils.cpp
91 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/TokenHasher.cpp
92 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/OperationResolver.cpp
93 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/ActivationExecution.cpp
94 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/BatchMatmulExecution.cpp
95 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/BidirectionalSequenceRNNExecution.cpp
96 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/BroadcastExecution.cpp
97 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/ChannelShuffleExecution.cpp
98 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/ComparisonsExecution.cpp
99 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/ConcatenationExecution.cpp
100 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/Conv2DExecution.cpp
101 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/DepthwiseConv2DExecution.cpp
102 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/DequantizeExecution.cpp
103 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/ElementwiseExecution.cpp
104 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/EluExecution.cpp
105 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/FillExecution.cpp
106 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/FullyConnectedExecution.cpp
107 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/GatherExecution.cpp
108 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/GenerateProposalsExecution.cpp
109 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/HeatmapMaxKeypointExecution.cpp
110 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/InstanceNormalizationExecution.cpp
111 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/L2NormalizationExecution.cpp
112 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/LocalResponseNormalizationExecution.cpp
113 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/LogSoftmaxExecution.cpp
114 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/LogicalAndOrExecution.cpp
115 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/LogicalNotExecution.cpp
116 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/MirrorPadExecution.cpp
117 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/NegExecution.cpp
118 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/PackExecution.cpp
119 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/PReluExecution.cpp
120 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/PoolingExecution.cpp
121 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/QLSTMExecution.cpp
122 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/QuantizeExecution.cpp
123 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/RankExecution.cpp
124 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/ReduceExecution.cpp
125 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/ReshapeExecution.cpp
126 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/ReverseExecution.cpp
127 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/ResizeImageOpsExecution.cpp
128 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/RoiAlignExecution.cpp
129 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/RoiPoolingExecution.cpp
130 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/SelectExecution.cpp
131 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/SliceExecution.cpp
132 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/SoftmaxExecution.cpp
133 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/SqueezeExecution.cpp
134 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/StridedSliceExecution.cpp
135 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/TopK_V2Execution.cpp
136 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/TransposeExecution.cpp
137 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/TransposeConv2DExecution.cpp
138 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/UnidirectionalSequenceLSTMExecution.cpp
139 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/common/operations/UnidirectionalSequenceRNNExecution.cpp)
140
141add_library(neuralnetworks_common_cl STATIC ${neuralnetworks_common_cl_sources})
142target_include_directories (neuralnetworks_common_cl PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
143target_include_directories (neuralnetworks_common_cl PUBLIC ${libnnapi_support_include_directories})
144
145set(neuralnetworks_cl_sources)
146list(APPEND neuralnetworks_cl_sources
147 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/runtime/BurstBuilder.cpp
148 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/runtime/CompilationBuilder.cpp
149 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/runtime/ExecutionBuilder.cpp
150 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/runtime/ExecutionCallback.cpp
151 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/runtime/ExecutionPlan.cpp
152 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/runtime/ServerFlag.cpp
153 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/runtime/Manager.cpp
154 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/runtime/Memory.cpp
155 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/runtime/ModelArchHasher.cpp
156 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/runtime/ModelArgumentInfo.cpp
157 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/runtime/ModelBuilder.cpp
158 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/runtime/NeuralNetworks.cpp
159 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/runtime/SupportLibraryDiagnostic.cpp
160 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/runtime/Telemetry.cpp
161 ${AOSP_MODULES_ROOT}/packages/modules/NeuralNetworks/runtime/TypeManager.cpp)
162
163add_library(neuralnetworks_cl OBJECT ${neuralnetworks_cl_sources})
164target_include_directories (neuralnetworks_cl PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
165target_include_directories (neuralnetworks_cl PUBLIC ${libnnapi_support_include_directories})
166
167set(crypto_static_sources)
168list(APPEND crypto_static_sources
169 ${AOSP_MODULES_ROOT}/external/boringssl/err_data.c
170 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/a_bitstr.c
171 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/a_bool.c
172 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/a_d2i_fp.c
173 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/a_dup.c
174 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/a_enum.c
175 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/a_gentm.c
176 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/a_i2d_fp.c
177 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/a_int.c
178 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/a_mbstr.c
179 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/a_object.c
180 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/a_octet.c
181 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/a_print.c
182 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/a_strex.c
183 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/a_strnid.c
184 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/a_time.c
185 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/a_type.c
186 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/a_utctm.c
187 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/a_utf8.c
188 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/asn1_lib.c
189 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/asn1_par.c
190 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/asn_pack.c
191 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/f_int.c
192 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/f_string.c
193 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/tasn_dec.c
194 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/tasn_enc.c
195 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/tasn_fre.c
196 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/tasn_new.c
197 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/tasn_typ.c
198 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/tasn_utl.c
199 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/asn1/time_support.c
200 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/base64/base64.c
201 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/bio/bio.c
202 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/bio/bio_mem.c
203 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/bio/connect.c
204 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/bio/fd.c
205 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/bio/file.c
206 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/bio/hexdump.c
207 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/bio/pair.c
208 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/bio/printf.c
209 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/bio/socket.c
210 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/bio/socket_helper.c
211 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/blake2/blake2.c
212 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/bn_extra/bn_asn1.c
213 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/bn_extra/convert.c
214 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/buf/buf.c
215 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/bytestring/asn1_compat.c
216 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/bytestring/ber.c
217 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/bytestring/cbb.c
218 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/bytestring/cbs.c
219 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/bytestring/unicode.c
220 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/bytestring/unicode.c
221 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/chacha/chacha.c
222 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cipher_extra/cipher_extra.c
223 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cipher_extra/derive_key.c
224 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cipher_extra/e_aesccm.c
225 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cipher_extra/e_aesctrhmac.c
226 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cipher_extra/e_aesgcmsiv.c
227 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cipher_extra/e_chacha20poly1305.c
228 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cipher_extra/e_des.c
229 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cipher_extra/e_null.c
230 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cipher_extra/e_rc2.c
231 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cipher_extra/e_rc4.c
232 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cipher_extra/e_tls.c
233 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cipher_extra/tls_cbc.c
234 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cmac/cmac.c
235 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/conf/conf.c
236 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cpu_aarch64_apple.c
237 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cpu_aarch64_fuchsia.c
238 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cpu_aarch64_linux.c
239 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cpu_aarch64_win.c
240 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cpu_arm.c
241 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cpu_arm_linux.c
242 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cpu_intel.c
243 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cpu_ppc64le.c
244 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/crypto.c
245 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/curve25519/curve25519.c
246 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/curve25519/spake25519.c
247 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/des/des.c
248 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/dh_extra/dh_asn1.c
249 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/dh_extra/params.c
250 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/digest_extra/digest_extra.c
251 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/dsa/dsa.c
252 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/dsa/dsa_asn1.c
253 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/ec_extra/ec_asn1.c
254 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/ec_extra/ec_derive.c
255 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cipher_extra/e_aesccm.c
256 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cipher_extra/e_aesctrhmac.c
257 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cipher_extra/e_aesgcmsiv.c
258 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cipher_extra/e_chacha20poly1305.c
259 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cipher_extra/e_des.c
260 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cipher_extra/e_null.c
261 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cipher_extra/e_rc2.c
262 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cipher_extra/e_rc4.c
263 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cipher_extra/e_tls.c
264 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cipher_extra/tls_cbc.c
265 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cmac/cmac.c
266 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/conf/conf.c
267 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cpu_aarch64_apple.c
268 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cpu_aarch64_fuchsia.c
269 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cpu_aarch64_linux.c
270 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cpu_aarch64_win.c
271 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cpu_arm.c
272 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cpu_arm_linux.c
273 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cpu_intel.c
274 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/cpu_ppc64le.c
275 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/crypto.c
276 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/curve25519/curve25519.c
277 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/curve25519/spake25519.c
278 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/des/des.c
279 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/dh_extra/dh_asn1.c
280 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/dh_extra/params.c
281 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/digest_extra/digest_extra.c
282 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/dsa/dsa.c
283 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/dsa/dsa_asn1.c
284 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/ec_extra/ec_asn1.c
285 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/ec_extra/ec_derive.c
286 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/ec_extra/hash_to_curve.c
287 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/ecdh_extra/ecdh_extra.c
288 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/ecdsa_extra/ecdsa_asn1.c
289 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/engine/engine.c
290 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/err/err.c
291 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/evp/digestsign.c
292 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/evp/evp.c
293 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/evp/evp_asn1.c
294 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/evp/evp_ctx.c
295 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/evp/p_dsa_asn1.c
296 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/evp/p_ec.c
297 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/evp/p_ec_asn1.c
298 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/evp/p_ed25519.c
299 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/evp/p_ed25519_asn1.c
300 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/evp/p_rsa.c
301 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/evp/p_rsa_asn1.c
302 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/evp/p_x25519.c
303 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/evp/p_x25519_asn1.c
304 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/evp/pbkdf.c
305 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/evp/print.c
306 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/evp/scrypt.c
307 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/evp/sign.c
308 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/ex_data.c
309 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/fipsmodule/fips_shared_support.c
310 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/hkdf/hkdf.c
311 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/hpke/hpke.c
312 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/hrss/hrss.c
313 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/lhash/lhash.c
314 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/mem.c
315 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/obj/obj.c
316 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/obj/obj_xref.c
317 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/pem/pem_all.c
318 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/pem/pem_info.c
319 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/pem/pem_lib.c
320 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/pem/pem_oth.c
321 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/pem/pem_pk8.c
322 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/pem/pem_pkey.c
323 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/pem/pem_x509.c
324 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/pem/pem_xaux.c
325 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/pkcs7/pkcs7.c
326 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/pkcs7/pkcs7_x509.c
327 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/pkcs8/p5_pbev2.c
328 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/pkcs8/pkcs8.c
329 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/pkcs8/pkcs8_x509.c
330 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/poly1305/poly1305.c
331 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/poly1305/poly1305_arm.c
332 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/poly1305/poly1305_vec.c
333 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/pool/pool.c
334 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/rand_extra/deterministic.c
335 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/rand_extra/forkunsafe.c
336 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/rand_extra/fuchsia.c
337 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/rand_extra/passive.c
338 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/rand_extra/rand_extra.c
339 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/rand_extra/windows.c
340 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/rc4/rc4.c
341 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/refcount_c11.c
342 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/refcount_lock.c
343 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/rsa_extra/rsa_asn1.c
344 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/rsa_extra/rsa_print.c
345 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/siphash/siphash.c
346 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/stack/stack.c
347 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/thread.c
348 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/thread_none.c
349 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/thread_pthread.c
350 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/thread_win.c
351 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/trust_token/pmbtoken.c
352 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/trust_token/trust_token.c
353 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/trust_token/voprf.c
354 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/a_digest.c
355 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/a_sign.c
356 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/a_verify.c
357 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/algorithm.c
358 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/asn1_gen.c
359 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/by_dir.c
360 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/by_file.c
361 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/i2d_pr.c
362 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/name_print.c
363 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/rsa_pss.c
364 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/t_crl.c
365 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/t_req.c
366 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/t_x509.c
367 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/t_x509a.c
368 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x509.c
369 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x509_att.c
370 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x509_cmp.c
371 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x509_d2.c
372 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x509_def.c
373 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x509_ext.c
374 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x509_lu.c
375 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x509_obj.c
376 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x509_req.c
377 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x509_set.c
378 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x509_trs.c
379 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x509_txt.c
380 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x509_v3.c
381 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x509_vfy.c
382 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x509_vpm.c
383 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x509cset.c
384 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x509name.c
385 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x509rset.c
386 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x509spki.c
387 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x_algor.c
388 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x_all.c
389 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x_attrib.c
390 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x_crl.c
391 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x_exten.c
392 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x_info.c
393 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x_name.c
394 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x_pkey.c
395 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x_pubkey.c
396 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x_req.c
397 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x_sig.c
398 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x_spki.c
399 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x_val.c
400 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x_x509.c
401 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509/x_x509a.c
402 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/pcy_cache.c
403 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/pcy_data.c
404 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/pcy_lib.c
405 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/pcy_map.c
406 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/pcy_node.c
407 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/pcy_tree.c
408 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/v3_akey.c
409 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/v3_akeya.c
410 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/v3_alt.c
411 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/v3_bcons.c
412 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/v3_bitst.c
413 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/v3_conf.c
414 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/v3_cpols.c
415 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/v3_crld.c
416 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/v3_enum.c
417 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/v3_extku.c
418 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/v3_genn.c
419 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/v3_ia5.c
420 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/v3_info.c
421 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/v3_int.c
422 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/v3_lib.c
423 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/v3_ncons.c
424 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/v3_ocsp.c
425 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/v3_pci.c
426 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/v3_pcia.c
427 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/v3_pcons.c
428 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/v3_pmaps.c
429 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/v3_prn.c
430 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/v3_purp.c
431 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/v3_skey.c
432 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/x509v3/v3_utl.c
433 ${AOSP_MODULES_ROOT}/external/boringssl/src/crypto/fipsmodule/bcm.c
434 ${AOSP_MODULES_ROOT}/external/boringssl/linux-aarch64/crypto/chacha/chacha-armv8.S
435 ${AOSP_MODULES_ROOT}/external/boringssl/linux-aarch64/crypto/fipsmodule/aesv8-armx64.S
436 ${AOSP_MODULES_ROOT}/external/boringssl/linux-aarch64/crypto/fipsmodule/armv8-mont.S
437 ${AOSP_MODULES_ROOT}/external/boringssl/linux-aarch64/crypto/fipsmodule/ghash-neon-armv8.S
438 ${AOSP_MODULES_ROOT}/external/boringssl/linux-aarch64/crypto/fipsmodule/ghashv8-armx64.S
439 ${AOSP_MODULES_ROOT}/external/boringssl/linux-aarch64/crypto/fipsmodule/sha1-armv8.S
440 ${AOSP_MODULES_ROOT}/external/boringssl/linux-aarch64/crypto/fipsmodule/sha256-armv8.S
441 ${AOSP_MODULES_ROOT}/external/boringssl/linux-aarch64/crypto/fipsmodule/sha512-armv8.S
442 ${AOSP_MODULES_ROOT}/external/boringssl/linux-aarch64/crypto/fipsmodule/vpaes-armv8.S
443 )
444
445add_library(crypto_static STATIC ${crypto_static_sources})
446target_include_directories (crypto_static PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
447target_include_directories (crypto_static PUBLIC ${libnnapi_support_include_directories})
448
449message(STATUS "AOSP_MODULES_ROOT: ${AOSP_MODULES_ROOT}")
450
451# Add Armnn as a Dependency
452message(STATUS "ARMNN_SOURCE_DIR: ${ARMNN_SOURCE_DIR}")
453message(STATUS "Armnn_DIR: ${Armnn_DIR}")
454
455set(Armnn_DIR "${Armnn_DIR}")
456if(NOT ARMNN_SUB_PROJECT)
457 find_package(Armnn REQUIRED CONFIG HINTS ${Armnn_DIR})
458endif()
459
460add_library(thirdparty_headers INTERFACE)
461target_include_directories(thirdparty_headers INTERFACE $<BUILD_INTERFACE:${ARMNN_SOURCE_DIR}/third-party>
462 $<INSTALL_INTERFACE:include/thirdparty_headers>)
463
464add_library(profiling_library_headers INTERFACE)
465target_include_directories(profiling_library_headers INTERFACE $<BUILD_INTERFACE:${ARMNN_SOURCE_DIR}/profiling>
466 $<INSTALL_INTERFACE:include/profiling_library_headers>)
467
468set(armnn_support_library_sources)
469list(APPEND armnn_support_library_sources
470 canonical/ArmnnPreparedModel.cpp
471 canonical/ArmnnPreparedModel.hpp
472 canonical/ArmnnDevice.cpp
473 canonical/ArmnnDevice.hpp
474 canonical/ArmnnDriver.hpp
475 canonical/ArmnnDriverImpl.cpp
476 canonical/ArmnnDriverImpl.hpp
477 canonical/CacheDataHandler.cpp
478 canonical/CacheDataHandler.hpp
479 canonical/CanonicalUtils.cpp
480 canonical/CanonicalUtils.hpp
481 canonical/ConversionUtils.cpp
482 canonical/ConversionUtils.hpp
483 canonical/Converter.cpp
484 canonical/Converter.hpp
485 canonical/DriverOptions.cpp
486 canonical/DriverOptions.hpp
487 canonical/ModelToINetworkTransformer.cpp
488 canonical/ModelToINetworkTransformer.hpp
489 canonical/SystemPropertiesUtils.hpp
490 support_library_service.cpp)
491
492list(APPEND armnn_support_library_sources "$<TARGET_OBJECTS:Armnn::armnnUtils>")
493list(APPEND armnn_support_library_sources "$<TARGET_OBJECTS:Armnn::armnnSerializerObj>")
494add_library(armnn_support_library SHARED ${armnn_support_library_sources})
495
496target_link_libraries(armnn_support_library PUBLIC Armnn::Armnn)
497target_link_libraries(armnn_support_library PUBLIC profiling_library_headers)
498target_link_libraries(armnn_support_library PRIVATE thirdparty_headers)
499
500target_link_libraries(armnn_support_library PRIVATE neuralnetworks_types_cl)
501target_link_libraries(armnn_support_library PRIVATE neuralnetworks_common_cl)
502target_link_libraries(armnn_support_library PRIVATE neuralnetworks_cl)
503target_link_libraries(armnn_support_library PRIVATE -Wl, -Bsymbolic, crypto_static)
504target_link_libraries(armnn_support_library PRIVATE base)
505
506target_include_directories(armnn_support_library PUBLIC ${libnnapi_support_include_directories})
507
508target_link_libraries(armnn_support_library PUBLIC -Wl,-undefined -Wl,dynamic_lookup)
509
510# find the liblog
511find_library(log-lib log)
512target_link_libraries(armnn_support_library PUBLIC ${log-lib})
513
514# find the libnativewindow
515find_library(nativewindow-lib nativewindow)
516target_link_libraries(armnn_support_library PUBLIC ${nativewindow-lib})
517
518####################################################