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