xref: /aosp_15_r20/external/armnn/CMakeLists.txt (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1*89c4ff92SAndroid Build Coastguard Worker#
2*89c4ff92SAndroid Build Coastguard Worker# Copyright © 2017-2023 Arm Ltd and Contributors. All rights reserved.
3*89c4ff92SAndroid Build Coastguard Worker# Copyright © 2020 NXP
4*89c4ff92SAndroid Build Coastguard Worker# SPDX-License-Identifier: MIT
5*89c4ff92SAndroid Build Coastguard Worker#
6*89c4ff92SAndroid Build Coastguard Workercmake_minimum_required (VERSION 3.7.0)
7*89c4ff92SAndroid Build Coastguard Workerproject(armnn)
8*89c4ff92SAndroid Build Coastguard Workerset(CMAKE_CXX_STANDARD 17)
9*89c4ff92SAndroid Build Coastguard Workerset(CMAKE_CXX_STANDARD_REQUIRED ON)
10*89c4ff92SAndroid Build Coastguard Worker
11*89c4ff92SAndroid Build Coastguard Workerset(additional_cmake_files)
12*89c4ff92SAndroid Build Coastguard Workerlist(APPEND additional_cmake_files
13*89c4ff92SAndroid Build Coastguard Worker    cmake/ArmnnVersion.cmake
14*89c4ff92SAndroid Build Coastguard Worker    cmake/ClassicDelegateVersion.cmake
15*89c4ff92SAndroid Build Coastguard Worker    cmake/OpaqueDelegateVersion.cmake
16*89c4ff92SAndroid Build Coastguard Worker    cmake/ParserVersion.cmake
17*89c4ff92SAndroid Build Coastguard Worker    cmake/Utils.cmake
18*89c4ff92SAndroid Build Coastguard Worker    cmake/GlobalConfig.cmake
19*89c4ff92SAndroid Build Coastguard Worker    cmake/AddDllCopyCommands.cmake
20*89c4ff92SAndroid Build Coastguard Worker    cmake/ArmnnTestUtilsVersion.cmake)
21*89c4ff92SAndroid Build Coastguard Worker
22*89c4ff92SAndroid Build Coastguard Workerforeach(cmake_file ${additional_cmake_files})
23*89c4ff92SAndroid Build Coastguard Worker    include(${cmake_file})
24*89c4ff92SAndroid Build Coastguard Workerendforeach()
25*89c4ff92SAndroid Build Coastguard Worker
26*89c4ff92SAndroid Build Coastguard Workercmake_policy(SET CMP0057 NEW)
27*89c4ff92SAndroid Build Coastguard Worker
28*89c4ff92SAndroid Build Coastguard Worker# If the root of the tensorflow source tree has not been specified
29*89c4ff92SAndroid Build Coastguard Worker# and we are trying to build the tensorflow lite parser make
30*89c4ff92SAndroid Build Coastguard Worker# our best guess as to where it will be i.e. one directory above
31*89c4ff92SAndroid Build Coastguard Worker# the one this CMakeLists.txt file lives in, in a subdirectory
32*89c4ff92SAndroid Build Coastguard Worker# called tensorflow
33*89c4ff92SAndroid Build Coastguard Workerif (BUILD_TF_LITE_PARSER AND "${TENSORFLOW_ROOT}" STREQUAL "")
34*89c4ff92SAndroid Build Coastguard Worker  set(TENSORFLOW_ROOT "${PROJECT_SOURCE_DIR}/../tensorflow" CACHE INTERNAL "")
35*89c4ff92SAndroid Build Coastguard Worker  message(STATUS "Set TENSORFLOW_ROOT: ${TENSORFLOW_ROOT}")
36*89c4ff92SAndroid Build Coastguard Workerelse()
37*89c4ff92SAndroid Build Coastguard Worker  message(STATUS "TENSORFLOW_ROOT: ${TENSORFLOW_ROOT}")
38*89c4ff92SAndroid Build Coastguard Workerendif()
39*89c4ff92SAndroid Build Coastguard Worker
40*89c4ff92SAndroid Build Coastguard Workerset(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/delegate/cmake/Modules/")
41*89c4ff92SAndroid Build Coastguard Worker
42*89c4ff92SAndroid Build Coastguard Workerset(as_subproject Armnn)
43*89c4ff92SAndroid Build Coastguard Worker
44*89c4ff92SAndroid Build Coastguard Workermacro(find_package)
45*89c4ff92SAndroid Build Coastguard Worker    if(NOT ${ARGV0} IN_LIST as_subproject)
46*89c4ff92SAndroid Build Coastguard Worker        _find_package(${ARGV})
47*89c4ff92SAndroid Build Coastguard Worker    endif()
48*89c4ff92SAndroid Build Coastguard Workerendmacro()
49*89c4ff92SAndroid Build Coastguard Worker
50*89c4ff92SAndroid Build Coastguard Workerif (DYNAMIC_BACKEND_PATHS)
51*89c4ff92SAndroid Build Coastguard Worker    # It's expected to have the format: DYNAMIC_BACKEND_PATHS="PATH_1:PATH_2...:PATH_N"
52*89c4ff92SAndroid Build Coastguard Worker    add_definitions('-DDYNAMIC_BACKEND_PATHS="${DYNAMIC_BACKEND_PATHS}"')
53*89c4ff92SAndroid Build Coastguard Workerendif()
54*89c4ff92SAndroid Build Coastguard Worker
55*89c4ff92SAndroid Build Coastguard Workerinclude(GNUInstallDirs)
56*89c4ff92SAndroid Build Coastguard Worker
57*89c4ff92SAndroid Build Coastguard Workeradd_subdirectory(profiling/common/src)
58*89c4ff92SAndroid Build Coastguard Workeradd_subdirectory(profiling/client/src)
59*89c4ff92SAndroid Build Coastguard Worker
60*89c4ff92SAndroid Build Coastguard Workeradd_subdirectory(samples)
61*89c4ff92SAndroid Build Coastguard Workeradd_subdirectory(src/armnnTfLiteParser)
62*89c4ff92SAndroid Build Coastguard Workeradd_subdirectory(src/armnnSerializer)
63*89c4ff92SAndroid Build Coastguard Workeradd_subdirectory(src/armnnDeserializer)
64*89c4ff92SAndroid Build Coastguard Workeradd_subdirectory(src/armnnTestUtils)
65*89c4ff92SAndroid Build Coastguard Worker
66*89c4ff92SAndroid Build Coastguard Workerif (BUILD_TESTS)
67*89c4ff92SAndroid Build Coastguard Worker    add_subdirectory(tests)
68*89c4ff92SAndroid Build Coastguard Workerendif()
69*89c4ff92SAndroid Build Coastguard Worker
70*89c4ff92SAndroid Build Coastguard Worker# Include the additional cmake files in their own target so that they will appear nicely in IDEs
71*89c4ff92SAndroid Build Coastguard Workeradd_custom_target(AdditionalCMakeFiles SOURCES ${additional_cmake_files})
72*89c4ff92SAndroid Build Coastguard Worker
73*89c4ff92SAndroid Build Coastguard Workerset(armnnUtils_sources)
74*89c4ff92SAndroid Build Coastguard Workerlist(APPEND armnnUtils_sources
75*89c4ff92SAndroid Build Coastguard Worker    include/armnnUtils/CompatibleTypes.hpp
76*89c4ff92SAndroid Build Coastguard Worker    include/armnnUtils/DataLayoutIndexed.hpp
77*89c4ff92SAndroid Build Coastguard Worker    include/armnnUtils/Permute.hpp
78*89c4ff92SAndroid Build Coastguard Worker    include/armnnUtils/Filesystem.hpp
79*89c4ff92SAndroid Build Coastguard Worker    include/armnnUtils/FloatingPointComparison.hpp
80*89c4ff92SAndroid Build Coastguard Worker    include/armnnUtils/FloatingPointConverter.hpp
81*89c4ff92SAndroid Build Coastguard Worker    include/armnnUtils/QuantizeHelper.hpp
82*89c4ff92SAndroid Build Coastguard Worker    include/armnnUtils/TContainer.hpp
83*89c4ff92SAndroid Build Coastguard Worker    include/armnnUtils/TensorUtils.hpp
84*89c4ff92SAndroid Build Coastguard Worker    include/armnnUtils/Transpose.hpp
85*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/BFloat16.hpp
86*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/CompatibleTypes.cpp
87*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/Filesystem.cpp
88*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/GraphTopologicalSort.hpp
89*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/Half.hpp
90*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/Permute.cpp
91*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/DataLayoutIndexed.cpp
92*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/DotSerializer.cpp
93*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/DotSerializer.hpp
94*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/HeapProfiling.cpp
95*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/HeapProfiling.hpp
96*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/LeakChecking.cpp
97*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/LeakChecking.hpp
98*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/ModelAccuracyChecker.cpp
99*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/ModelAccuracyChecker.hpp
100*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/FloatingPointConverter.cpp
101*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/VerificationHelpers.hpp
102*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/VerificationHelpers.cpp
103*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/ParserHelper.hpp
104*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/ParserHelper.cpp
105*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/ParserPrototxtFixture.hpp
106*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/ProfilingOptionsConverter.hpp
107*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/ProfilingOptionsConverter.cpp
108*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/PrototxtConversions.hpp
109*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/PrototxtConversions.cpp
110*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/TensorIOUtils.hpp
111*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/TensorUtils.cpp
112*89c4ff92SAndroid Build Coastguard Worker    src/armnnUtils/Transpose.cpp
113*89c4ff92SAndroid Build Coastguard Worker    )
114*89c4ff92SAndroid Build Coastguard Worker
115*89c4ff92SAndroid Build Coastguard Workeradd_library_ex(armnnUtils STATIC ${armnnUtils_sources})
116*89c4ff92SAndroid Build Coastguard Worker
117*89c4ff92SAndroid Build Coastguard Workertarget_include_directories(armnnUtils PRIVATE src/backends)
118*89c4ff92SAndroid Build Coastguard Worker
119*89c4ff92SAndroid Build Coastguard Workerif(BUILD_ONNX_PARSER)
120*89c4ff92SAndroid Build Coastguard Worker    set(armnn_onnx_parser_sources)
121*89c4ff92SAndroid Build Coastguard Worker    list(APPEND armnn_onnx_parser_sources
122*89c4ff92SAndroid Build Coastguard Worker        include/armnnOnnxParser/IOnnxParser.hpp
123*89c4ff92SAndroid Build Coastguard Worker        include/armnnOnnxParser/Version.hpp
124*89c4ff92SAndroid Build Coastguard Worker        src/armnnOnnxParser/OnnxParser.hpp
125*89c4ff92SAndroid Build Coastguard Worker        src/armnnOnnxParser/OnnxParser.cpp
126*89c4ff92SAndroid Build Coastguard Worker        ${ONNX_GENERATED_SOURCES}/onnx/onnx.pb.cc
127*89c4ff92SAndroid Build Coastguard Worker        )
128*89c4ff92SAndroid Build Coastguard Worker    # The generated onnx protobuf .cc files are not warning clean and we can't fix them.
129*89c4ff92SAndroid Build Coastguard Worker    if(COMPILER_IS_GNU_LIKE)
130*89c4ff92SAndroid Build Coastguard Worker        set_source_files_properties(${ONNX_GENERATED_SOURCES}/onnx/onnx.pb.cc PROPERTIES COMPILE_FLAGS "-Wno-conversion -Wno-sign-conversion")
131*89c4ff92SAndroid Build Coastguard Worker    endif()
132*89c4ff92SAndroid Build Coastguard Worker
133*89c4ff92SAndroid Build Coastguard Worker    add_library_ex(armnnOnnxParser SHARED ${armnn_onnx_parser_sources})
134*89c4ff92SAndroid Build Coastguard Worker
135*89c4ff92SAndroid Build Coastguard Worker    target_include_directories(armnnOnnxParser PRIVATE src/armnnUtils)
136*89c4ff92SAndroid Build Coastguard Worker
137*89c4ff92SAndroid Build Coastguard Worker    target_link_libraries(armnnOnnxParser armnn)
138*89c4ff92SAndroid Build Coastguard Worker
139*89c4ff92SAndroid Build Coastguard Worker    # Protobuf
140*89c4ff92SAndroid Build Coastguard Worker    target_link_libraries(armnnOnnxParser ${PROTOBUF_LIBRARIES})
141*89c4ff92SAndroid Build Coastguard Worker    set_target_properties(armnnOnnxParser PROPERTIES VERSION ${ONNX_PARSER_LIB_VERSION} SOVERSION ${ONNX_PARSER_LIB_SOVERSION})
142*89c4ff92SAndroid Build Coastguard Workerendif()
143*89c4ff92SAndroid Build Coastguard Worker
144*89c4ff92SAndroid Build Coastguard Workerlist(APPEND armnn_sources
145*89c4ff92SAndroid Build Coastguard Worker    include/armnn/ArmNN.hpp
146*89c4ff92SAndroid Build Coastguard Worker    include/armnn/BackendHelper.hpp
147*89c4ff92SAndroid Build Coastguard Worker    include/armnn/BackendId.hpp
148*89c4ff92SAndroid Build Coastguard Worker    include/armnn/BackendOptions.hpp
149*89c4ff92SAndroid Build Coastguard Worker    include/armnn/BackendRegistry.hpp
150*89c4ff92SAndroid Build Coastguard Worker    include/armnn/Conversion.hpp
151*89c4ff92SAndroid Build Coastguard Worker    include/armnn/Deprecated.hpp
152*89c4ff92SAndroid Build Coastguard Worker    include/armnn/Descriptors.hpp
153*89c4ff92SAndroid Build Coastguard Worker    include/armnn/DescriptorsFwd.hpp
154*89c4ff92SAndroid Build Coastguard Worker    include/armnn/Exceptions.hpp
155*89c4ff92SAndroid Build Coastguard Worker    include/armnn/backends/ILayerSupport.hpp
156*89c4ff92SAndroid Build Coastguard Worker    include/armnn/backends/ICustomAllocator.hpp
157*89c4ff92SAndroid Build Coastguard Worker    include/armnn/IAsyncExecutionCallback.hpp
158*89c4ff92SAndroid Build Coastguard Worker    include/armnn/INetwork.hpp
159*89c4ff92SAndroid Build Coastguard Worker    include/armnn/IProfiler.hpp
160*89c4ff92SAndroid Build Coastguard Worker    include/armnn/IRuntime.hpp
161*89c4ff92SAndroid Build Coastguard Worker    include/armnn/IStrategy.hpp
162*89c4ff92SAndroid Build Coastguard Worker    include/armnn/IWorkingMemHandle.hpp
163*89c4ff92SAndroid Build Coastguard Worker    include/armnn/Logging.hpp
164*89c4ff92SAndroid Build Coastguard Worker    include/armnn/LstmParams.hpp
165*89c4ff92SAndroid Build Coastguard Worker    include/armnn/MemorySources.hpp
166*89c4ff92SAndroid Build Coastguard Worker    include/armnn/NetworkFwd.hpp
167*89c4ff92SAndroid Build Coastguard Worker    include/armnn/Optional.hpp
168*89c4ff92SAndroid Build Coastguard Worker    include/armnn/QuantizedLstmParams.hpp
169*89c4ff92SAndroid Build Coastguard Worker    include/armnn/StrategyBase.hpp
170*89c4ff92SAndroid Build Coastguard Worker    include/armnn/Tensor.hpp
171*89c4ff92SAndroid Build Coastguard Worker    include/armnn/TensorFwd.hpp
172*89c4ff92SAndroid Build Coastguard Worker    include/armnn/Threadpool.hpp
173*89c4ff92SAndroid Build Coastguard Worker    include/armnn/Types.hpp
174*89c4ff92SAndroid Build Coastguard Worker    include/armnn/TypesUtils.hpp
175*89c4ff92SAndroid Build Coastguard Worker    include/armnn/Utils.hpp
176*89c4ff92SAndroid Build Coastguard Worker    include/armnn/Version.hpp
177*89c4ff92SAndroid Build Coastguard Worker    include/armnn/utility/Assert.hpp
178*89c4ff92SAndroid Build Coastguard Worker    include/armnn/utility/IgnoreUnused.hpp
179*89c4ff92SAndroid Build Coastguard Worker    include/armnn/utility/NumericCast.hpp
180*89c4ff92SAndroid Build Coastguard Worker    include/armnn/utility/PolymorphicDowncast.hpp
181*89c4ff92SAndroid Build Coastguard Worker    include/armnn/utility/StringUtils.hpp
182*89c4ff92SAndroid Build Coastguard Worker    include/armnn/utility/TransformIterator.hpp
183*89c4ff92SAndroid Build Coastguard Worker    include/armnn/backends/SubgraphView.hpp
184*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/LayerCloneBase.hpp
185*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/LayerWithParameters.hpp
186*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ActivationLayer.hpp
187*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ActivationLayer.cpp
188*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/AdditionLayer.hpp
189*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/AdditionLayer.cpp
190*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ArgMinMaxLayer.hpp
191*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ArgMinMaxLayer.cpp
192*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/BatchMatMulLayer.hpp
193*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/BatchMatMulLayer.cpp
194*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/BatchNormalizationLayer.hpp
195*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/BatchNormalizationLayer.cpp
196*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/BatchToSpaceNdLayer.hpp
197*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/BatchToSpaceNdLayer.cpp
198*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/CastLayer.hpp
199*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/CastLayer.cpp
200*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ChannelShuffleLayer.hpp
201*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ChannelShuffleLayer.cpp
202*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ComparisonLayer.hpp
203*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ComparisonLayer.cpp
204*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ConcatLayer.hpp
205*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ConcatLayer.cpp
206*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ConstantLayer.hpp
207*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ConstantLayer.cpp
208*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/Convolution2dLayer.hpp
209*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/Convolution2dLayer.cpp
210*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/Convolution3dLayer.hpp
211*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/Convolution3dLayer.cpp
212*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ConvertFp16ToFp32Layer.hpp
213*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ConvertFp16ToFp32Layer.cpp
214*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ConvertFp32ToFp16Layer.hpp
215*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ConvertFp32ToFp16Layer.cpp
216*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/DebugLayer.hpp
217*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/DebugLayer.cpp
218*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/DepthToSpaceLayer.hpp
219*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/DepthToSpaceLayer.cpp
220*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/DepthwiseConvolution2dLayer.hpp
221*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/DepthwiseConvolution2dLayer.cpp
222*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/DequantizeLayer.hpp
223*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/DequantizeLayer.cpp
224*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/DetectionPostProcessLayer.hpp
225*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/DetectionPostProcessLayer.cpp
226*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ElementwiseBaseLayer.hpp
227*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ElementwiseBaseLayer.cpp
228*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ElementwiseBinaryLayer.hpp
229*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ElementwiseBinaryLayer.cpp
230*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ElementwiseUnaryLayer.hpp
231*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ElementwiseUnaryLayer.cpp
232*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/FakeQuantizationLayer.hpp
233*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/FakeQuantizationLayer.cpp
234*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/FillLayer.hpp
235*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/FillLayer.cpp
236*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/FloorLayer.hpp
237*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/FloorLayer.cpp
238*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/FullyConnectedLayer.hpp
239*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/FullyConnectedLayer.cpp
240*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/GatherLayer.cpp
241*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/GatherLayer.hpp
242*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/GatherNdLayer.cpp
243*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/GatherNdLayer.hpp
244*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/InputLayer.hpp
245*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/InputLayer.cpp
246*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/InstanceNormalizationLayer.hpp
247*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/InstanceNormalizationLayer.cpp
248*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/L2NormalizationLayer.hpp
249*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/L2NormalizationLayer.cpp
250*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/LogicalBinaryLayer.hpp
251*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/LogicalBinaryLayer.cpp
252*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/LogSoftmaxLayer.hpp
253*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/LogSoftmaxLayer.cpp
254*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/LstmLayer.cpp
255*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/LstmLayer.hpp
256*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/MapLayer.cpp
257*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/MapLayer.hpp
258*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/MaximumLayer.cpp
259*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/MaximumLayer.hpp
260*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/MeanLayer.hpp
261*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/MeanLayer.cpp
262*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/MemCopyLayer.hpp
263*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/MemCopyLayer.cpp
264*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/MemImportLayer.hpp
265*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/MemImportLayer.cpp
266*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/MergeLayer.hpp
267*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/MergeLayer.cpp
268*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/MinimumLayer.cpp
269*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/MinimumLayer.hpp
270*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/MultiplicationLayer.hpp
271*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/MultiplicationLayer.cpp
272*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/NormalizationLayer.hpp
273*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/NormalizationLayer.cpp
274*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/OutputLayer.hpp
275*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/OutputLayer.cpp
276*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/PadLayer.hpp
277*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/PadLayer.cpp
278*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/PermuteLayer.hpp
279*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/PermuteLayer.cpp
280*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/Pooling2dLayer.hpp
281*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/Pooling2dLayer.cpp
282*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/Pooling3dLayer.hpp
283*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/Pooling3dLayer.cpp
284*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/QuantizeLayer.cpp
285*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/QuantizeLayer.hpp
286*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/QLstmLayer.hpp
287*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/QLstmLayer.cpp
288*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/QuantizedLstmLayer.hpp
289*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/QuantizedLstmLayer.cpp
290*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/DivisionLayer.cpp
291*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/DivisionLayer.hpp
292*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/PreCompiledLayer.hpp
293*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/PreCompiledLayer.cpp
294*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/PreluLayer.hpp
295*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/PreluLayer.cpp
296*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/RankLayer.hpp
297*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/RankLayer.cpp
298*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ReduceLayer.hpp
299*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ReduceLayer.cpp
300*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ReshapeLayer.hpp
301*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ReshapeLayer.cpp
302*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ResizeLayer.hpp
303*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ResizeLayer.cpp
304*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ShapeLayer.cpp
305*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/ShapeLayer.hpp
306*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/SliceLayer.cpp
307*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/SliceLayer.hpp
308*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/SoftmaxLayer.hpp
309*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/SoftmaxLayer.cpp
310*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/SpaceToBatchNdLayer.hpp
311*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/SpaceToBatchNdLayer.cpp
312*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/SpaceToDepthLayer.hpp
313*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/SpaceToDepthLayer.cpp
314*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/SplitterLayer.hpp
315*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/SplitterLayer.cpp
316*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/StackLayer.hpp
317*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/StackLayer.cpp
318*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/StandInLayer.cpp
319*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/StandInLayer.hpp
320*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/StridedSliceLayer.cpp
321*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/StridedSliceLayer.hpp
322*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/SubtractionLayer.cpp
323*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/SubtractionLayer.hpp
324*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/SwitchLayer.cpp
325*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/SwitchLayer.hpp
326*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/TransposeConvolution2dLayer.cpp
327*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/TransposeConvolution2dLayer.hpp
328*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/TransposeLayer.hpp
329*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/TransposeLayer.cpp
330*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/UnidirectionalSequenceLstmLayer.cpp
331*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/UnidirectionalSequenceLstmLayer.hpp
332*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/UnmapLayer.cpp
333*89c4ff92SAndroid Build Coastguard Worker    src/armnn/layers/UnmapLayer.hpp
334*89c4ff92SAndroid Build Coastguard Worker    src/armnn/ArmNNProfilingServiceInitialiser.cpp
335*89c4ff92SAndroid Build Coastguard Worker    src/armnn/ArmNNProfilingServiceInitialiser.hpp
336*89c4ff92SAndroid Build Coastguard Worker    src/armnn/AsyncExecutionCallback.cpp
337*89c4ff92SAndroid Build Coastguard Worker    src/armnn/AsyncExecutionCallback.hpp
338*89c4ff92SAndroid Build Coastguard Worker    src/armnn/BackendRegistry.cpp
339*89c4ff92SAndroid Build Coastguard Worker    src/armnn/BackendSettings.hpp
340*89c4ff92SAndroid Build Coastguard Worker    src/armnn/BackendHelper.cpp
341*89c4ff92SAndroid Build Coastguard Worker    src/armnn/Descriptors.cpp
342*89c4ff92SAndroid Build Coastguard Worker    src/armnn/DeviceSpec.hpp
343*89c4ff92SAndroid Build Coastguard Worker    src/armnn/DllExport.hpp
344*89c4ff92SAndroid Build Coastguard Worker    src/armnn/Exceptions.cpp
345*89c4ff92SAndroid Build Coastguard Worker    src/armnn/ExecutionData.hpp
346*89c4ff92SAndroid Build Coastguard Worker    src/armnn/ExecutionFrame.cpp
347*89c4ff92SAndroid Build Coastguard Worker    src/armnn/ExecutionFrame.hpp
348*89c4ff92SAndroid Build Coastguard Worker    src/armnn/Graph.cpp
349*89c4ff92SAndroid Build Coastguard Worker    src/armnn/Graph.hpp
350*89c4ff92SAndroid Build Coastguard Worker    src/armnn/IGraphObservable.hpp
351*89c4ff92SAndroid Build Coastguard Worker    src/armnn/ILayerSupport.cpp
352*89c4ff92SAndroid Build Coastguard Worker    src/armnn/Instrument.hpp
353*89c4ff92SAndroid Build Coastguard Worker    src/armnn/InternalTypes.cpp
354*89c4ff92SAndroid Build Coastguard Worker    src/armnn/InternalTypes.hpp
355*89c4ff92SAndroid Build Coastguard Worker    src/armnn/ISubgraphViewConverter.hpp
356*89c4ff92SAndroid Build Coastguard Worker    src/armnn/JsonPrinter.cpp
357*89c4ff92SAndroid Build Coastguard Worker    src/armnn/JsonPrinter.hpp
358*89c4ff92SAndroid Build Coastguard Worker    src/armnn/Layer.cpp
359*89c4ff92SAndroid Build Coastguard Worker    src/armnn/LayerFwd.hpp
360*89c4ff92SAndroid Build Coastguard Worker    src/armnn/Layer.hpp
361*89c4ff92SAndroid Build Coastguard Worker    src/armnn/LayersFwd.hpp
362*89c4ff92SAndroid Build Coastguard Worker    src/armnn/LayerSupportCommon.hpp
363*89c4ff92SAndroid Build Coastguard Worker    src/armnn/LoadedNetwork.cpp
364*89c4ff92SAndroid Build Coastguard Worker    src/armnn/LoadedNetwork.hpp
365*89c4ff92SAndroid Build Coastguard Worker    src/armnn/Logging.cpp
366*89c4ff92SAndroid Build Coastguard Worker    src/armnn/Network.cpp
367*89c4ff92SAndroid Build Coastguard Worker    src/armnn/Network.hpp
368*89c4ff92SAndroid Build Coastguard Worker    src/armnn/NetworkUtils.cpp
369*89c4ff92SAndroid Build Coastguard Worker    src/armnn/NetworkUtils.hpp
370*89c4ff92SAndroid Build Coastguard Worker    src/armnn/Observable.cpp
371*89c4ff92SAndroid Build Coastguard Worker    src/armnn/Observable.hpp
372*89c4ff92SAndroid Build Coastguard Worker    src/armnn/Optimizer.cpp
373*89c4ff92SAndroid Build Coastguard Worker    src/armnn/Optimizer.hpp
374*89c4ff92SAndroid Build Coastguard Worker    src/armnn/OutputHandler.cpp
375*89c4ff92SAndroid Build Coastguard Worker    src/armnn/OutputHandler.hpp
376*89c4ff92SAndroid Build Coastguard Worker    src/armnn/Profiling.cpp
377*89c4ff92SAndroid Build Coastguard Worker    src/armnn/ProfilingEvent.cpp
378*89c4ff92SAndroid Build Coastguard Worker    src/armnn/ProfilingDetails.hpp
379*89c4ff92SAndroid Build Coastguard Worker    src/armnn/ProfilingEvent.hpp
380*89c4ff92SAndroid Build Coastguard Worker    src/armnn/Profiling.hpp
381*89c4ff92SAndroid Build Coastguard Worker    src/armnn/Runtime.cpp
382*89c4ff92SAndroid Build Coastguard Worker    src/armnn/Runtime.hpp
383*89c4ff92SAndroid Build Coastguard Worker    src/armnn/RangeTracker.cpp
384*89c4ff92SAndroid Build Coastguard Worker    src/armnn/RangeTracker.hpp
385*89c4ff92SAndroid Build Coastguard Worker    src/armnn/ResolveType.hpp
386*89c4ff92SAndroid Build Coastguard Worker    src/armnn/SerializeLayerParameters.cpp
387*89c4ff92SAndroid Build Coastguard Worker    src/armnn/SerializeLayerParameters.hpp
388*89c4ff92SAndroid Build Coastguard Worker    src/armnn/SubgraphView.cpp
389*89c4ff92SAndroid Build Coastguard Worker    src/armnn/SubgraphViewSelector.cpp
390*89c4ff92SAndroid Build Coastguard Worker    src/armnn/SubgraphViewSelector.hpp
391*89c4ff92SAndroid Build Coastguard Worker    src/armnn/Tensor.cpp
392*89c4ff92SAndroid Build Coastguard Worker    src/armnn/Threadpool.cpp
393*89c4ff92SAndroid Build Coastguard Worker    src/armnn/TypesUtils.cpp
394*89c4ff92SAndroid Build Coastguard Worker    src/armnn/Utils.cpp
395*89c4ff92SAndroid Build Coastguard Worker    src/armnn/WallClockTimer.cpp
396*89c4ff92SAndroid Build Coastguard Worker    src/armnn/WallClockTimer.hpp
397*89c4ff92SAndroid Build Coastguard Worker    src/armnn/WorkingMemDescriptor.hpp
398*89c4ff92SAndroid Build Coastguard Worker    src/armnn/WorkingMemHandle.cpp
399*89c4ff92SAndroid Build Coastguard Worker    src/armnn/WorkingMemHandle.hpp
400*89c4ff92SAndroid Build Coastguard Worker    src/armnn/optimizations/AddBroadcastReshapeLayer.hpp
401*89c4ff92SAndroid Build Coastguard Worker    src/armnn/optimizations/AddDebug.hpp
402*89c4ff92SAndroid Build Coastguard Worker    src/armnn/optimizations/All.hpp
403*89c4ff92SAndroid Build Coastguard Worker    src/armnn/optimizations/ConvertConstants.hpp
404*89c4ff92SAndroid Build Coastguard Worker    src/armnn/optimizations/ConvertFp32NetworkToFp16.hpp
405*89c4ff92SAndroid Build Coastguard Worker    src/armnn/optimizations/FoldPadIntoLayer2d.hpp
406*89c4ff92SAndroid Build Coastguard Worker    src/armnn/optimizations/MovePermuteUp.hpp
407*89c4ff92SAndroid Build Coastguard Worker    src/armnn/optimizations/MoveTransposeUp.hpp
408*89c4ff92SAndroid Build Coastguard Worker    src/armnn/optimizations/Optimization.hpp
409*89c4ff92SAndroid Build Coastguard Worker    src/armnn/optimizations/OptimizeConsecutiveReshapes.hpp
410*89c4ff92SAndroid Build Coastguard Worker    src/armnn/optimizations/OptimizeInverseConversions.hpp
411*89c4ff92SAndroid Build Coastguard Worker    src/armnn/optimizations/OptimizeInversePermutes.hpp
412*89c4ff92SAndroid Build Coastguard Worker    src/armnn/optimizations/PermuteAndBatchToSpaceAsDepthToSpace.hpp
413*89c4ff92SAndroid Build Coastguard Worker    src/armnn/optimizations/PermuteAsReshape.hpp
414*89c4ff92SAndroid Build Coastguard Worker    src/armnn/optimizations/SquashEqualSiblings.hpp
415*89c4ff92SAndroid Build Coastguard Worker    third-party/cxxopts/cxxopts.hpp
416*89c4ff92SAndroid Build Coastguard Worker    third-party/ghc/filesystem.hpp
417*89c4ff92SAndroid Build Coastguard Worker    third-party/half/half.hpp
418*89c4ff92SAndroid Build Coastguard Worker    third-party/mapbox/optional.hpp
419*89c4ff92SAndroid Build Coastguard Worker    third-party/mapbox/recursive_wrapper.hpp
420*89c4ff92SAndroid Build Coastguard Worker    third-party/mapbox/variant.hpp
421*89c4ff92SAndroid Build Coastguard Worker    third-party/mapbox/variant_cast.hpp
422*89c4ff92SAndroid Build Coastguard Worker    third-party/mapbox/variant_io.hpp
423*89c4ff92SAndroid Build Coastguard Worker    third-party/mapbox/variant_visitor.hpp
424*89c4ff92SAndroid Build Coastguard Worker    )
425*89c4ff92SAndroid Build Coastguard Worker
426*89c4ff92SAndroid Build Coastguard Worker# Files used for Streamline-based profiling backend
427*89c4ff92SAndroid Build Coastguard Workerif(PROFILING_BACKEND_STREAMLINE)
428*89c4ff92SAndroid Build Coastguard Worker    list(APPEND armnn_sources
429*89c4ff92SAndroid Build Coastguard Worker        ${GATOR_ROOT}/annotate/streamline_annotate.h
430*89c4ff92SAndroid Build Coastguard Worker        ${GATOR_ROOT}/annotate/streamline_annotate.c)
431*89c4ff92SAndroid Build Coastguard Workerendif()
432*89c4ff92SAndroid Build Coastguard Worker
433*89c4ff92SAndroid Build Coastguard Worker# the backends under src/backends extend the list of
434*89c4ff92SAndroid Build Coastguard Worker# object libs armnn to include in the build
435*89c4ff92SAndroid Build Coastguard Workerinclude(src/backends/backends.cmake)
436*89c4ff92SAndroid Build Coastguard Workerforeach(lib ${armnnLibraries})
437*89c4ff92SAndroid Build Coastguard Worker    message(STATUS "Adding object library dependency to armnn: ${lib}")
438*89c4ff92SAndroid Build Coastguard Worker    list(APPEND armnn_sources $<TARGET_OBJECTS:${lib}>)
439*89c4ff92SAndroid Build Coastguard Workerendforeach()
440*89c4ff92SAndroid Build Coastguard Worker
441*89c4ff92SAndroid Build Coastguard Worker# The delegate needs to be placed after armnnLibraries has been fully populated. The armnn_delegate_jni library
442*89c4ff92SAndroid Build Coastguard Worker# requires a static armnn build.
443*89c4ff92SAndroid Build Coastguard Worker# Explanation:
444*89c4ff92SAndroid Build Coastguard Worker# Because backends are added as object libraries they won't be linked to armnn when building armnn statically.
445*89c4ff92SAndroid Build Coastguard Worker# A target that uses a static armnn library has to link to the object libraries in the variable armnnLibraries
446*89c4ff92SAndroid Build Coastguard Worker# manually to include all symbols from backends.
447*89c4ff92SAndroid Build Coastguard Workerif (BUILD_CLASSIC_DELEGATE OR BUILD_OPAQUE_DELEGATE)
448*89c4ff92SAndroid Build Coastguard Worker    set(ARMNN_SUB_PROJECT ON)
449*89c4ff92SAndroid Build Coastguard Worker    set(ARMNN_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
450*89c4ff92SAndroid Build Coastguard Worker    add_subdirectory(delegate)
451*89c4ff92SAndroid Build Coastguard Workerendif()
452*89c4ff92SAndroid Build Coastguard Workerif (BUILD_CLASSIC_DELEGATE)
453*89c4ff92SAndroid Build Coastguard Worker    add_definitions(-DARMNN_TFLITE_DELEGATE)
454*89c4ff92SAndroid Build Coastguard Workerendif()
455*89c4ff92SAndroid Build Coastguard Workerif (BUILD_OPAQUE_DELEGATE)
456*89c4ff92SAndroid Build Coastguard Worker    add_definitions(-DARMNN_TFLITE_OPAQUE_DELEGATE)
457*89c4ff92SAndroid Build Coastguard Workerendif()
458*89c4ff92SAndroid Build Coastguard Worker
459*89c4ff92SAndroid Build Coastguard Workerif(BUILD_BARE_METAL OR EXECUTE_NETWORK_STATIC)
460*89c4ff92SAndroid Build Coastguard Worker    add_library_ex(armnn STATIC ${armnn_sources})
461*89c4ff92SAndroid Build Coastguard Workerelse()
462*89c4ff92SAndroid Build Coastguard Worker    if (BUILD_SHARED_LIBS)
463*89c4ff92SAndroid Build Coastguard Worker        add_library_ex(armnn SHARED ${armnn_sources})
464*89c4ff92SAndroid Build Coastguard Worker    else()
465*89c4ff92SAndroid Build Coastguard Worker        add_library(armnn ${armnn_sources})
466*89c4ff92SAndroid Build Coastguard Worker    endif()
467*89c4ff92SAndroid Build Coastguard Workerendif()
468*89c4ff92SAndroid Build Coastguard Worker
469*89c4ff92SAndroid Build Coastguard Workertarget_compile_definitions(armnn PRIVATE "ARMNN_COMPILING_DLL")
470*89c4ff92SAndroid Build Coastguard Worker
471*89c4ff92SAndroid Build Coastguard Worker# Generate a map file for all build modes
472*89c4ff92SAndroid Build Coastguard Workerset_property(TARGET armnn APPEND_STRING PROPERTY
473*89c4ff92SAndroid Build Coastguard Worker        LINK_FLAGS " -Wl,-Map=libarmnnMapFile.map")
474*89c4ff92SAndroid Build Coastguard Workermessage(STATUS "Linker will generate mapfile ")
475*89c4ff92SAndroid Build Coastguard Worker
476*89c4ff92SAndroid Build Coastguard Workertarget_include_directories(armnn
477*89c4ff92SAndroid Build Coastguard Worker    PUBLIC
478*89c4ff92SAndroid Build Coastguard Worker        $<INSTALL_INTERFACE:include>
479*89c4ff92SAndroid Build Coastguard Worker        $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
480*89c4ff92SAndroid Build Coastguard Worker    PRIVATE
481*89c4ff92SAndroid Build Coastguard Worker        src/armnn
482*89c4ff92SAndroid Build Coastguard Worker        src/armnnUtils
483*89c4ff92SAndroid Build Coastguard Worker        src/backends
484*89c4ff92SAndroid Build Coastguard Worker        src/profiling
485*89c4ff92SAndroid Build Coastguard Worker        profiling/common/include
486*89c4ff92SAndroid Build Coastguard Worker        profiling/client/include
487*89c4ff92SAndroid Build Coastguard Worker)
488*89c4ff92SAndroid Build Coastguard Worker
489*89c4ff92SAndroid Build Coastguard Worker# Link fmt third-party library
490*89c4ff92SAndroid Build Coastguard Workeradd_subdirectory(third-party/fmt)
491*89c4ff92SAndroid Build Coastguard Workertarget_link_libraries(armnn PUBLIC fmt)
492*89c4ff92SAndroid Build Coastguard Worker
493*89c4ff92SAndroid Build Coastguard Workertarget_link_libraries(armnn PUBLIC armnnUtils)
494*89c4ff92SAndroid Build Coastguard Workertarget_link_libraries(armnn PUBLIC pipeCommon)
495*89c4ff92SAndroid Build Coastguard Workertarget_link_libraries(armnn PUBLIC pipeClient)
496*89c4ff92SAndroid Build Coastguard Worker
497*89c4ff92SAndroid Build Coastguard Workerif(NOT BUILD_BARE_METAL AND NOT EXECUTE_NETWORK_STATIC)
498*89c4ff92SAndroid Build Coastguard Worker    target_link_libraries(armnn PUBLIC ${CMAKE_DL_LIBS})
499*89c4ff92SAndroid Build Coastguard Workerendif()
500*89c4ff92SAndroid Build Coastguard Worker
501*89c4ff92SAndroid Build Coastguard Workerif ("${CMAKE_SYSTEM_NAME}" STREQUAL Windows)
502*89c4ff92SAndroid Build Coastguard Worker    target_link_libraries(armnn PUBLIC Ws2_32.lib)
503*89c4ff92SAndroid Build Coastguard Workerendif()
504*89c4ff92SAndroid Build Coastguard Worker
505*89c4ff92SAndroid Build Coastguard Worker
506*89c4ff92SAndroid Build Coastguard Workerif(BUILD_ONNX_PARSER)
507*89c4ff92SAndroid Build Coastguard Worker    install(TARGETS armnnOnnxParser
508*89c4ff92SAndroid Build Coastguard Worker            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
509*89c4ff92SAndroid Build Coastguard Worker            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
510*89c4ff92SAndroid Build Coastguard Worker            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
511*89c4ff92SAndroid Build Coastguard Workerendif()
512*89c4ff92SAndroid Build Coastguard Worker
513*89c4ff92SAndroid Build Coastguard Workerinstall(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
514*89c4ff92SAndroid Build Coastguard Worker
515*89c4ff92SAndroid Build Coastguard Workerif(ARMCOMPUTENEON OR ARMCOMPUTECL)
516*89c4ff92SAndroid Build Coastguard Worker    target_link_libraries(armnn PUBLIC ${ARMCOMPUTE_LIBRARIES})
517*89c4ff92SAndroid Build Coastguard Workerendif()
518*89c4ff92SAndroid Build Coastguard Worker
519*89c4ff92SAndroid Build Coastguard Worker# Flatbuffers is not included in armnn if the armnnSerializer is not present
520*89c4ff92SAndroid Build Coastguard Worker# Required to target link both flatbuffers and tosa_serialization_lib to armnn
521*89c4ff92SAndroid Build Coastguard Workerif(ARMNNTOSACOMMON)
522*89c4ff92SAndroid Build Coastguard Worker    if (FLATBUFFERS_LIBRARY)
523*89c4ff92SAndroid Build Coastguard Worker        target_link_libraries(armnn PUBLIC ${FLATBUFFERS_LIBRARY})
524*89c4ff92SAndroid Build Coastguard Worker    else()
525*89c4ff92SAndroid Build Coastguard Worker        # Use PATH_SUFFIXES to help find separate libs for debug/release on Windows builds
526*89c4ff92SAndroid Build Coastguard Worker        find_library(FLATBUFFERS_LIBRARY_DEBUG NAMES flatbuffers
527*89c4ff92SAndroid Build Coastguard Worker                     HINTS ${FLATBUFFERS_BUILD_DIR}
528*89c4ff92SAndroid Build Coastguard Worker                     PATH_SUFFIXES "Debug")
529*89c4ff92SAndroid Build Coastguard Worker        find_library(FLATBUFFERS_LIBRARY_RELEASE NAMES flatbuffers
530*89c4ff92SAndroid Build Coastguard Worker                     HINTS ${FLATBUFFERS_BUILD_DIR}
531*89c4ff92SAndroid Build Coastguard Worker                     PATH_SUFFIXES "Release")
532*89c4ff92SAndroid Build Coastguard Worker        target_link_libraries(armnn PUBLIC
533*89c4ff92SAndroid Build Coastguard Worker                     debug ${FLATBUFFERS_LIBRARY_DEBUG}
534*89c4ff92SAndroid Build Coastguard Worker                     optimized ${FLATBUFFERS_LIBRARY_RELEASE})
535*89c4ff92SAndroid Build Coastguard Worker    endif()
536*89c4ff92SAndroid Build Coastguard Worker
537*89c4ff92SAndroid Build Coastguard Worker    if (TOSA_SERIALIZATION_LIB)
538*89c4ff92SAndroid Build Coastguard Worker        target_link_libraries(armnn PUBLIC -Wl,--whole-archive ${TOSA_SERIALIZATION_LIB} -Wl,--no-whole-archive)
539*89c4ff92SAndroid Build Coastguard Worker    else()
540*89c4ff92SAndroid Build Coastguard Worker        find_library(TOSA_SERIALIZATION_LIB
541*89c4ff92SAndroid Build Coastguard Worker                     NAMES libtosa_serialization_lib.a tosa_serialization_lib
542*89c4ff92SAndroid Build Coastguard Worker                     HINTS ${TOSA_SERIALIZATION_LIB_ROOT}/lib /usr/local/lib /usr/lib)
543*89c4ff92SAndroid Build Coastguard Worker
544*89c4ff92SAndroid Build Coastguard Worker        message(STATUS "TOSA serialization library set to ${TOSA_SERIALIZATION_LIB}")
545*89c4ff92SAndroid Build Coastguard Worker
546*89c4ff92SAndroid Build Coastguard Worker        target_link_libraries(armnn PUBLIC -Wl,--whole-archive ${TOSA_SERIALIZATION_LIB} -Wl,--no-whole-archive)
547*89c4ff92SAndroid Build Coastguard Worker    endif()
548*89c4ff92SAndroid Build Coastguard Workerendif()
549*89c4ff92SAndroid Build Coastguard Worker
550*89c4ff92SAndroid Build Coastguard Workerif (ARMNNTOSAREF)
551*89c4ff92SAndroid Build Coastguard Worker    if (TOSA_REFERENCE_MODEL_LIB)
552*89c4ff92SAndroid Build Coastguard Worker        target_link_libraries(armnn PUBLIC -Wl,--whole-archive ${TOSA_REFERENCE_MODEL_LIB} -Wl,--no-whole-archive)
553*89c4ff92SAndroid Build Coastguard Worker    else()
554*89c4ff92SAndroid Build Coastguard Worker        find_library(TOSA_REFERENCE_MODEL_LIB
555*89c4ff92SAndroid Build Coastguard Worker            NAMES libtosa_reference_model_lib.a tosa_reference_model_lib
556*89c4ff92SAndroid Build Coastguard Worker            HINTS ${TOSA_REFERENCE_MODEL_ROOT}/lib /usr/local/lib /usr/lib)
557*89c4ff92SAndroid Build Coastguard Worker        message(STATUS "TOSA Reference Model set to ${TOSA_REFERENCE_MODEL_LIB}")
558*89c4ff92SAndroid Build Coastguard Worker
559*89c4ff92SAndroid Build Coastguard Worker        target_link_libraries(armnn PUBLIC -Wl,--whole-archive ${TOSA_REFERENCE_MODEL_LIB} -Wl,--no-whole-archive)
560*89c4ff92SAndroid Build Coastguard Worker    endif()
561*89c4ff92SAndroid Build Coastguard Workerendif()
562*89c4ff92SAndroid Build Coastguard Worker
563*89c4ff92SAndroid Build Coastguard Workerif(PROFILING_BACKEND_STREAMLINE AND (NOT ("${CMAKE_SYSTEM_NAME}" STREQUAL Android)))
564*89c4ff92SAndroid Build Coastguard Worker    target_link_libraries(armnn PUBLIC ${CMAKE_THREAD_LIBS_INIT})
565*89c4ff92SAndroid Build Coastguard Workerendif()
566*89c4ff92SAndroid Build Coastguard Worker
567*89c4ff92SAndroid Build Coastguard Workerset_target_properties(armnn PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION})
568*89c4ff92SAndroid Build Coastguard Worker
569*89c4ff92SAndroid Build Coastguard Workerif(BUILD_UNIT_TESTS)
570*89c4ff92SAndroid Build Coastguard Worker    set(unittest_sources)
571*89c4ff92SAndroid Build Coastguard Worker    list(APPEND unittest_sources
572*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/CloneTests.cpp
573*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/ConstTensorLayerVisitor.hpp
574*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/ConstTensorLayerVisitor.cpp
575*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/EndToEndTest.cpp
576*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/ExecutionFrameTest.cpp
577*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/FloatingPointConverterTest.cpp
578*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/FlowControl.cpp
579*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/GraphTests.cpp
580*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/InstrumentTests.cpp
581*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/InferOutputTests.cpp
582*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/InferOutputTests.hpp
583*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/ModelAccuracyCheckerTest.cpp
584*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/NetworkTests.cpp
585*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/ObservableTest.cpp
586*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/OptimizerTests.cpp
587*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/optimizations/AddBroadcastReshapeLayerTests.cpp
588*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/optimizations/ConvertConstDequantisationLayersToConstLayersTest.cpp
589*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/optimizations/ConvertConstPermuteLayersToConstLayersTest.cpp
590*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/optimizations/ConvertConstantsFloatToHalfTests.cpp
591*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/optimizations/ConvertConstantsHalfToFloatTests.cpp
592*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/optimizations/FoldPadIntoQuantizedAveragePooling2DTests.cpp
593*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/optimizations/FoldPadTests.cpp
594*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/optimizations/Fp32NetworkToFp16ConverterTests.cpp
595*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/optimizations/FuseActivationTests.cpp
596*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/optimizations/InsertDebugLayerTests.cpp
597*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/optimizations/MovePermuteUpTests.cpp
598*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/optimizations/MoveTransposeUpTests.cpp
599*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/optimizations/OptimizeConsecutiveReshapesTests.cpp
600*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/optimizations/OptimizeInverseConversionsTests.cpp
601*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/optimizations/OptimizeInversePermutesTests.cpp
602*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/optimizations/PermuteAndBatchToSpaceAsDepthToSpaceTests.cpp
603*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/optimizations/PermuteAsReshapeTests.cpp
604*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/optimizations/ReduceMultipleAxesTests.cpp
605*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/optimizations/SquashEqualSiblingsTests.cpp
606*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/optimizations/TransposeAsReshapeTests.cpp
607*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/OptionalTest.cpp
608*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/ProfilerTests.cpp
609*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/ProfilingEventTest.cpp
610*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/ShapeInferenceTests.cpp
611*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/SubgraphViewTests.cpp
612*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/TensorHandleStrategyTest.cpp
613*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/TensorTest.cpp
614*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/TestInputOutputLayerVisitor.cpp
615*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/TestInputOutputLayerVisitor.hpp
616*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/TestLayerVisitor.cpp
617*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/TestLayerVisitor.hpp
618*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/TestNameOnlyLayerVisitor.cpp
619*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/TestNameOnlyLayerVisitor.hpp
620*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/TestNameAndDescriptorLayerVisitor.hpp
621*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/TestNameAndDescriptorLayerVisitor.cpp
622*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/UtilityTests.cpp
623*89c4ff92SAndroid Build Coastguard Worker        src/armnn/test/UtilsTests.cpp
624*89c4ff92SAndroid Build Coastguard Worker        src/armnnUtils/test/FloatingPointComparisonTest.cpp
625*89c4ff92SAndroid Build Coastguard Worker        src/armnnUtils/test/ParserHelperTest.cpp
626*89c4ff92SAndroid Build Coastguard Worker        src/armnnUtils/test/PrototxtConversionsTest.cpp
627*89c4ff92SAndroid Build Coastguard Worker        src/armnnUtils/test/QuantizeHelperTest.cpp
628*89c4ff92SAndroid Build Coastguard Worker        src/armnnUtils/test/TensorUtilsTest.cpp
629*89c4ff92SAndroid Build Coastguard Worker        src/armnnUtils/test/TransformIteratorTest.cpp
630*89c4ff92SAndroid Build Coastguard Worker        src/profiling/test/BufferTests.cpp
631*89c4ff92SAndroid Build Coastguard Worker        src/profiling/test/FileOnlyProfilingDecoratorTests.cpp
632*89c4ff92SAndroid Build Coastguard Worker        src/profiling/test/PrintPacketHeaderHandler.cpp
633*89c4ff92SAndroid Build Coastguard Worker        src/profiling/test/PrintPacketHeaderHandler.hpp
634*89c4ff92SAndroid Build Coastguard Worker        src/profiling/test/ProfilingConnectionDumpToFileDecoratorTests.cpp
635*89c4ff92SAndroid Build Coastguard Worker        src/profiling/test/ProfilingGuidTest.cpp
636*89c4ff92SAndroid Build Coastguard Worker        src/profiling/test/ProfilingMocks.hpp
637*89c4ff92SAndroid Build Coastguard Worker        src/profiling/test/ProfilingTests.cpp
638*89c4ff92SAndroid Build Coastguard Worker        src/profiling/test/ProfilingTests.hpp
639*89c4ff92SAndroid Build Coastguard Worker        src/profiling/test/ProfilingTestUtils.cpp
640*89c4ff92SAndroid Build Coastguard Worker        src/profiling/test/ProfilingTestUtils.hpp
641*89c4ff92SAndroid Build Coastguard Worker        src/profiling/test/RequestCountersPacketHandler.cpp
642*89c4ff92SAndroid Build Coastguard Worker        src/profiling/test/RequestCountersPacketHandler.hpp
643*89c4ff92SAndroid Build Coastguard Worker        src/profiling/test/SendCounterPacketTests.cpp
644*89c4ff92SAndroid Build Coastguard Worker        src/profiling/test/SendCounterPacketTests.hpp
645*89c4ff92SAndroid Build Coastguard Worker        src/profiling/test/TestTimelinePacketHandler.cpp
646*89c4ff92SAndroid Build Coastguard Worker        src/profiling/test/TestTimelinePacketHandler.hpp
647*89c4ff92SAndroid Build Coastguard Worker        src/profiling/test/TimelineModel.cpp
648*89c4ff92SAndroid Build Coastguard Worker        src/profiling/test/TimelineModel.hpp
649*89c4ff92SAndroid Build Coastguard Worker        src/profiling/test/SendTimelinePacketTests.cpp
650*89c4ff92SAndroid Build Coastguard Worker        src/profiling/test/TimelinePacketTests.cpp
651*89c4ff92SAndroid Build Coastguard Worker        src/profiling/test/TimelineUtilityMethodsTests.cpp
652*89c4ff92SAndroid Build Coastguard Worker        third-party/doctest/doctest.h
653*89c4ff92SAndroid Build Coastguard Worker        )
654*89c4ff92SAndroid Build Coastguard Worker
655*89c4ff92SAndroid Build Coastguard Worker    if(ARMNNREF)
656*89c4ff92SAndroid Build Coastguard Worker        list(APPEND unittest_sources
657*89c4ff92SAndroid Build Coastguard Worker            src/armnn/test/optimizations/FuseBatchNormTests.cpp
658*89c4ff92SAndroid Build Coastguard Worker            src/armnn/test/DebugCallbackTest.cpp
659*89c4ff92SAndroid Build Coastguard Worker            src/armnn/test/RuntimeTests.cpp
660*89c4ff92SAndroid Build Coastguard Worker            src/armnn/test/RuntimeTests.hpp
661*89c4ff92SAndroid Build Coastguard Worker            )
662*89c4ff92SAndroid Build Coastguard Worker    endif()
663*89c4ff92SAndroid Build Coastguard Worker
664*89c4ff92SAndroid Build Coastguard Worker    if(BUILD_TF_LITE_PARSER AND ARMNNREF)
665*89c4ff92SAndroid Build Coastguard Worker        list(APPEND unittest_sources
666*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Activations.cpp
667*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Addition.cpp
668*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/ArgMinMax.cpp
669*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/AvgPool2D.cpp
670*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/BatchMatMul.cpp
671*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/BatchToSpaceND.cpp
672*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Cast.cpp
673*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Comparison.cpp
674*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Concatenation.cpp
675*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Constant.cpp
676*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Conv2D.cpp
677*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Conv3D.cpp
678*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/DepthwiseConvolution2D.cpp
679*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/DepthToSpace.cpp
680*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Dequantize.cpp
681*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/DetectionPostProcess.cpp
682*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Div.cpp
683*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/ElementWiseUnary.cpp
684*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/ExpandDims.cpp
685*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/FloorDiv.cpp
686*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/FullyConnected.cpp
687*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Gather.cpp
688*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/GatherNd.cpp
689*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/L2Normalization.cpp
690*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/LeakyRelu.cpp
691*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/LoadScopeDynamicTensor.cpp
692*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/LocalResponseNormalization.cpp
693*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Maximum.cpp
694*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/MaxPool2D.cpp
695*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Mean.cpp
696*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Minimum.cpp
697*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/MirrorPad.cpp
698*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Multiplication.cpp
699*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Pack.cpp
700*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Pad.cpp
701*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/PadV2.cpp
702*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Prelu.cpp
703*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Reduce.cpp
704*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Reshape.cpp
705*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/ReshapeDynamic.cpp
706*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/ResizeBilinear.cpp
707*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/ResizeNearestNeighbor.cpp
708*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Quantize.cpp
709*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Softmax.cpp
710*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/SpaceToBatchND.cpp
711*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Shape.cpp
712*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Slice.cpp
713*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Split.cpp
714*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/SplitV.cpp
715*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Squeeze.cpp
716*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/StridedSlice.cpp
717*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Sub.cpp
718*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Sum.cpp
719*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/TransposeConv.cpp
720*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Transpose.cpp
721*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Unpack.cpp
722*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/Unsupported.cpp
723*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/LoadModel.cpp
724*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/GetBuffer.cpp
725*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/OutputShapeOfSqueeze.cpp
726*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/InputOutputTensorNames.cpp
727*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/GetTensorIds.cpp
728*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/GetSubgraphInputsOutputs.cpp
729*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/GetInputsOutputs.cpp
730*89c4ff92SAndroid Build Coastguard Worker             src/armnnTfLiteParser/test/TfLiteParser.cpp
731*89c4ff92SAndroid Build Coastguard Worker             )
732*89c4ff92SAndroid Build Coastguard Worker
733*89c4ff92SAndroid Build Coastguard Worker        # Generate SchemaText.cpp file which contains the TfLite schema text as a
734*89c4ff92SAndroid Build Coastguard Worker        # static C-array of bytes. This is needed at runtime for TfLite parser tests.
735*89c4ff92SAndroid Build Coastguard Worker        add_custom_command(
736*89c4ff92SAndroid Build Coastguard Worker            OUTPUT  SchemaText.cpp
737*89c4ff92SAndroid Build Coastguard Worker            COMMAND cp ${TF_LITE_SCHEMA_INCLUDE_PATH}/schema.fbs g_TfLiteSchemaText
738*89c4ff92SAndroid Build Coastguard Worker            COMMAND xxd -i g_TfLiteSchemaText SchemaText.cpp
739*89c4ff92SAndroid Build Coastguard Worker            WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
740*89c4ff92SAndroid Build Coastguard Worker            DEPENDS ${TF_LITE_SCHEMA_INCLUDE_PATH}/schema.fbs
741*89c4ff92SAndroid Build Coastguard Worker        )
742*89c4ff92SAndroid Build Coastguard Worker        list(APPEND unittest_sources ${CMAKE_CURRENT_BINARY_DIR}/SchemaText.cpp)
743*89c4ff92SAndroid Build Coastguard Worker    endif()
744*89c4ff92SAndroid Build Coastguard Worker
745*89c4ff92SAndroid Build Coastguard Worker    if(BUILD_ONNX_PARSER AND ARMNNREF)
746*89c4ff92SAndroid Build Coastguard Worker        list(APPEND unittest_sources
747*89c4ff92SAndroid Build Coastguard Worker            src/armnnOnnxParser/test/Addition.cpp
748*89c4ff92SAndroid Build Coastguard Worker            src/armnnOnnxParser/test/BatchNorm.cpp
749*89c4ff92SAndroid Build Coastguard Worker            src/armnnOnnxParser/test/Clip.cpp
750*89c4ff92SAndroid Build Coastguard Worker            src/armnnOnnxParser/test/Concat.cpp
751*89c4ff92SAndroid Build Coastguard Worker            src/armnnOnnxParser/test/Const.cpp
752*89c4ff92SAndroid Build Coastguard Worker            src/armnnOnnxParser/test/Constructor.cpp
753*89c4ff92SAndroid Build Coastguard Worker            src/armnnOnnxParser/test/Conv2D.cpp
754*89c4ff92SAndroid Build Coastguard Worker            src/armnnOnnxParser/test/CreateNetwork.cpp
755*89c4ff92SAndroid Build Coastguard Worker            src/armnnOnnxParser/test/DepthConv.cpp
756*89c4ff92SAndroid Build Coastguard Worker            src/armnnOnnxParser/test/Flatten.cpp
757*89c4ff92SAndroid Build Coastguard Worker            src/armnnOnnxParser/test/FullyConnected.cpp
758*89c4ff92SAndroid Build Coastguard Worker            src/armnnOnnxParser/test/Gather.cpp
759*89c4ff92SAndroid Build Coastguard Worker            src/armnnOnnxParser/test/Gemm.cpp
760*89c4ff92SAndroid Build Coastguard Worker            src/armnnOnnxParser/test/GetInputsOutputs.cpp
761*89c4ff92SAndroid Build Coastguard Worker            src/armnnOnnxParser/test/LoadScopeDynamicTensor.cpp
762*89c4ff92SAndroid Build Coastguard Worker            src/armnnOnnxParser/test/OnnxParserTestUtils.cpp
763*89c4ff92SAndroid Build Coastguard Worker            src/armnnOnnxParser/test/OnnxParserTestUtils.hpp
764*89c4ff92SAndroid Build Coastguard Worker            src/armnnOnnxParser/test/Pooling.cpp
765*89c4ff92SAndroid Build Coastguard Worker            src/armnnOnnxParser/test/ProtoxtFixture.cpp
766*89c4ff92SAndroid Build Coastguard Worker            src/armnnOnnxParser/test/Relu.cpp
767*89c4ff92SAndroid Build Coastguard Worker            src/armnnOnnxParser/test/Reshape.cpp
768*89c4ff92SAndroid Build Coastguard Worker            src/armnnOnnxParser/test/Shape.cpp
769*89c4ff92SAndroid Build Coastguard Worker            src/armnnOnnxParser/test/Unsqueeze.cpp
770*89c4ff92SAndroid Build Coastguard Worker            )
771*89c4ff92SAndroid Build Coastguard Worker    endif()
772*89c4ff92SAndroid Build Coastguard Worker
773*89c4ff92SAndroid Build Coastguard Worker    if(BUILD_ARMNN_SERIALIZER AND ARMNNREF)
774*89c4ff92SAndroid Build Coastguard Worker        enable_language(ASM)
775*89c4ff92SAndroid Build Coastguard Worker        list(APPEND unittest_sources
776*89c4ff92SAndroid Build Coastguard Worker            src/armnnSerializer/test/ActivationSerializationTests.cpp
777*89c4ff92SAndroid Build Coastguard Worker            src/armnnSerializer/test/ComparisonSerializationTests.cpp
778*89c4ff92SAndroid Build Coastguard Worker            src/armnnSerializer/test/LstmSerializationTests.cpp
779*89c4ff92SAndroid Build Coastguard Worker            src/armnnSerializer/test/SerializerTests.cpp
780*89c4ff92SAndroid Build Coastguard Worker            src/armnnSerializer/test/SerializerTestUtils.cpp
781*89c4ff92SAndroid Build Coastguard Worker            src/armnnSerializer/test/SerializerTestUtils.hpp
782*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeAbs.cpp
783*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeActivation.cpp
784*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeAdd.cpp
785*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeArgMinMax.cpp
786*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeBatchMatMul.cpp
787*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeBatchToSpaceNd.cpp
788*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeBatchNormalization.cpp
789*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeCast.cpp
790*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeChannelShuffle.cpp
791*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeComparison.cpp
792*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeConstant.cpp
793*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeConvolution2d.cpp
794*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeConvolution3d.cpp
795*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeDepthToSpace.cpp
796*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeDepthwiseConv2d.cpp
797*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeDivision.cpp
798*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeFill.cpp
799*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeFloor.cpp
800*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeFullyConnected.cpp
801*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeGather.cpp
802*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeGatherNd.cpp
803*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeInstanceNormalization.cpp
804*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeL2Normalization.cpp
805*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeLogSoftmax.cpp
806*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeMean.cpp
807*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeMultiplication.cpp
808*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeNormalization.cpp
809*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializePad.cpp
810*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializePermute.cpp
811*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializePooling2d.cpp
812*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializePooling3d.cpp
813*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeRank.cpp
814*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeReduceSum.cpp
815*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeReshape.cpp
816*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeResizeBilinear.cpp
817*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeRsqrt.cpp
818*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeShape.cpp
819*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeSlice.cpp
820*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeSpaceToBatchNd.cpp
821*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeStridedSlice.cpp
822*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/DeserializeSubtraction.cpp
823*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/ParserFlatbuffersSerializeFixture.hpp
824*89c4ff92SAndroid Build Coastguard Worker            src/armnnDeserializer/test/SchemaSerialize.s
825*89c4ff92SAndroid Build Coastguard Worker            )
826*89c4ff92SAndroid Build Coastguard Worker        set_source_files_properties(src/armnnDeserializer/test/SchemaSerialize.s PROPERTIES COMPILE_FLAGS "-x assembler-with-cpp")
827*89c4ff92SAndroid Build Coastguard Worker    endif()
828*89c4ff92SAndroid Build Coastguard Worker
829*89c4ff92SAndroid Build Coastguard Worker    if(BUILD_GATORD_MOCK)
830*89c4ff92SAndroid Build Coastguard Worker        list(APPEND unittest_sources
831*89c4ff92SAndroid Build Coastguard Worker            tests/profiling/gatordmock/tests/GatordMockTests.cpp
832*89c4ff92SAndroid Build Coastguard Worker            )
833*89c4ff92SAndroid Build Coastguard Worker    endif()
834*89c4ff92SAndroid Build Coastguard Worker
835*89c4ff92SAndroid Build Coastguard Worker    if(BUILD_TIMELINE_DECODER)
836*89c4ff92SAndroid Build Coastguard Worker        list(APPEND unittest_sources
837*89c4ff92SAndroid Build Coastguard Worker             src/timelineDecoder/tests/JSONTimelineDecoderTests.cpp
838*89c4ff92SAndroid Build Coastguard Worker             profiling/server/src/timelineDecoder/tests/TimelineTests.cpp
839*89c4ff92SAndroid Build Coastguard Worker             )
840*89c4ff92SAndroid Build Coastguard Worker    endif()
841*89c4ff92SAndroid Build Coastguard Worker
842*89c4ff92SAndroid Build Coastguard Worker    if(BUILD_BASE_PIPE_SERVER)
843*89c4ff92SAndroid Build Coastguard Worker        list(APPEND unittest_sources
844*89c4ff92SAndroid Build Coastguard Worker                profiling/server/src/basePipeServer/tests/BasePipeServerTests.cpp
845*89c4ff92SAndroid Build Coastguard Worker                )
846*89c4ff92SAndroid Build Coastguard Worker    endif()
847*89c4ff92SAndroid Build Coastguard Worker
848*89c4ff92SAndroid Build Coastguard Worker    if(BUILD_TESTS)
849*89c4ff92SAndroid Build Coastguard Worker        list(APPEND unittest_sources
850*89c4ff92SAndroid Build Coastguard Worker            ./tests/NetworkExecutionUtils/NetworkExecutionUtils.cpp
851*89c4ff92SAndroid Build Coastguard Worker            ./tests/NetworkExecutionUtils/test/NetworkExecutionUtilsTests.cpp)
852*89c4ff92SAndroid Build Coastguard Worker    endif()
853*89c4ff92SAndroid Build Coastguard Worker
854*89c4ff92SAndroid Build Coastguard Worker    foreach(lib ${armnnUnitTestLibraries})
855*89c4ff92SAndroid Build Coastguard Worker        message(STATUS "Adding object library dependency to UnitTests: ${lib}")
856*89c4ff92SAndroid Build Coastguard Worker        list(APPEND unittest_sources $<TARGET_OBJECTS:${lib}>)
857*89c4ff92SAndroid Build Coastguard Worker    endforeach()
858*89c4ff92SAndroid Build Coastguard Worker
859*89c4ff92SAndroid Build Coastguard Worker    add_executable(UnitTests ${unittest_sources})
860*89c4ff92SAndroid Build Coastguard Worker    target_include_directories(UnitTests PRIVATE src/armnn)
861*89c4ff92SAndroid Build Coastguard Worker    target_include_directories(UnitTests PRIVATE src/armnnUtils)
862*89c4ff92SAndroid Build Coastguard Worker    target_include_directories(UnitTests PRIVATE src/armnnTestUtils)
863*89c4ff92SAndroid Build Coastguard Worker    target_include_directories(UnitTests PRIVATE src/backends)
864*89c4ff92SAndroid Build Coastguard Worker    target_include_directories(UnitTests PRIVATE src/profiling)
865*89c4ff92SAndroid Build Coastguard Worker
866*89c4ff92SAndroid Build Coastguard Worker    if(VALGRIND_FOUND)
867*89c4ff92SAndroid Build Coastguard Worker        if(HEAP_PROFILING OR LEAK_CHECKING)
868*89c4ff92SAndroid Build Coastguard Worker            message(STATUS "Valgrind is disabled for heap profiling and leak checking builds.")
869*89c4ff92SAndroid Build Coastguard Worker        else()
870*89c4ff92SAndroid Build Coastguard Worker            # Valgrind works with gperftools version number <= 2.4
871*89c4ff92SAndroid Build Coastguard Worker            target_compile_definitions(UnitTests PRIVATE "WITH_VALGRIND=1")
872*89c4ff92SAndroid Build Coastguard Worker        endif()
873*89c4ff92SAndroid Build Coastguard Worker    endif()
874*89c4ff92SAndroid Build Coastguard Worker
875*89c4ff92SAndroid Build Coastguard Worker    target_link_libraries(UnitTests ${CMAKE_THREAD_LIBS_INIT})
876*89c4ff92SAndroid Build Coastguard Worker
877*89c4ff92SAndroid Build Coastguard Worker    target_link_libraries(UnitTests armnn)
878*89c4ff92SAndroid Build Coastguard Worker    target_link_libraries(UnitTests armnnTestUtils)
879*89c4ff92SAndroid Build Coastguard Worker
880*89c4ff92SAndroid Build Coastguard Worker    if(BUILD_GATORD_MOCK)
881*89c4ff92SAndroid Build Coastguard Worker        target_link_libraries(UnitTests gatordMockService)
882*89c4ff92SAndroid Build Coastguard Worker    endif()
883*89c4ff92SAndroid Build Coastguard Worker
884*89c4ff92SAndroid Build Coastguard Worker    if(BUILD_TIMELINE_DECODER)
885*89c4ff92SAndroid Build Coastguard Worker        target_link_libraries(UnitTests timelineDecoder)
886*89c4ff92SAndroid Build Coastguard Worker        target_link_libraries(UnitTests timelineDecoderJson)
887*89c4ff92SAndroid Build Coastguard Worker    endif()
888*89c4ff92SAndroid Build Coastguard Worker
889*89c4ff92SAndroid Build Coastguard Worker    if(BUILD_TF_LITE_PARSER)
890*89c4ff92SAndroid Build Coastguard Worker        target_include_directories(UnitTests SYSTEM PRIVATE "${TF_LITE_SCHEMA_INCLUDE_PATH}")
891*89c4ff92SAndroid Build Coastguard Worker        target_include_directories(UnitTests SYSTEM PRIVATE "${FLATBUFFERS_INCLUDE_PATH}")
892*89c4ff92SAndroid Build Coastguard Worker        target_link_libraries(UnitTests armnnTfLiteParser)
893*89c4ff92SAndroid Build Coastguard Worker    endif()
894*89c4ff92SAndroid Build Coastguard Worker
895*89c4ff92SAndroid Build Coastguard Worker    if(BUILD_ARMNN_SERIALIZER AND ARMNNREF)
896*89c4ff92SAndroid Build Coastguard Worker        target_include_directories(UnitTests SYSTEM PRIVATE generated)
897*89c4ff92SAndroid Build Coastguard Worker        target_include_directories(UnitTests SYSTEM PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/src/armnnSerializer)
898*89c4ff92SAndroid Build Coastguard Worker        target_include_directories(UnitTests SYSTEM PRIVATE "${FLATBUFFERS_INCLUDE_PATH}")
899*89c4ff92SAndroid Build Coastguard Worker        target_link_libraries(UnitTests armnnSerializer)
900*89c4ff92SAndroid Build Coastguard Worker    endif()
901*89c4ff92SAndroid Build Coastguard Worker
902*89c4ff92SAndroid Build Coastguard Worker    if(BUILD_ONNX_PARSER)
903*89c4ff92SAndroid Build Coastguard Worker        target_link_libraries(UnitTests armnnOnnxParser)
904*89c4ff92SAndroid Build Coastguard Worker    endif()
905*89c4ff92SAndroid Build Coastguard Worker
906*89c4ff92SAndroid Build Coastguard Worker    if(BUILD_BASE_PIPE_SERVER)
907*89c4ff92SAndroid Build Coastguard Worker        target_link_libraries(UnitTests armnnBasePipeServer)
908*89c4ff92SAndroid Build Coastguard Worker    endif()
909*89c4ff92SAndroid Build Coastguard Worker
910*89c4ff92SAndroid Build Coastguard Worker    addDllCopyCommands(UnitTests)
911*89c4ff92SAndroid Build Coastguard Workerendif()
912*89c4ff92SAndroid Build Coastguard Worker
913*89c4ff92SAndroid Build Coastguard Workerif (BUILD_ARMNN_SERIALIZER AND (BUILD_TF_LITE_PARSER OR BUILD_ONNX_PARSER) AND ARMNNREF)
914*89c4ff92SAndroid Build Coastguard Worker    set(ArmnnConverter_sources
915*89c4ff92SAndroid Build Coastguard Worker        src/armnnConverter/ArmnnConverter.cpp)
916*89c4ff92SAndroid Build Coastguard Worker
917*89c4ff92SAndroid Build Coastguard Worker    add_executable_ex(ArmnnConverter ${ArmnnConverter_sources})
918*89c4ff92SAndroid Build Coastguard Worker    target_include_directories(ArmnnConverter PRIVATE src/armnn)
919*89c4ff92SAndroid Build Coastguard Worker    target_include_directories(ArmnnConverter PRIVATE src/armnnUtils)
920*89c4ff92SAndroid Build Coastguard Worker
921*89c4ff92SAndroid Build Coastguard Worker    if(BUILD_ONNX_PARSER)
922*89c4ff92SAndroid Build Coastguard Worker        target_link_libraries(ArmnnConverter armnnOnnxParser)
923*89c4ff92SAndroid Build Coastguard Worker    endif()
924*89c4ff92SAndroid Build Coastguard Worker
925*89c4ff92SAndroid Build Coastguard Worker    if(BUILD_TF_LITE_PARSER)
926*89c4ff92SAndroid Build Coastguard Worker        target_link_libraries(ArmnnConverter armnnTfLiteParser)
927*89c4ff92SAndroid Build Coastguard Worker    endif()
928*89c4ff92SAndroid Build Coastguard Worker
929*89c4ff92SAndroid Build Coastguard Worker    target_link_libraries(ArmnnConverter armnnSerializer)
930*89c4ff92SAndroid Build Coastguard Worker
931*89c4ff92SAndroid Build Coastguard Worker    target_link_libraries(ArmnnConverter armnn)
932*89c4ff92SAndroid Build Coastguard Worker    target_link_libraries(ArmnnConverter ${CMAKE_THREAD_LIBS_INIT})
933*89c4ff92SAndroid Build Coastguard Worker    addDllCopyCommands(ArmnnConverter)
934*89c4ff92SAndroid Build Coastguard Worker
935*89c4ff92SAndroid Build Coastguard Worker    install(TARGETS ArmnnConverter
936*89c4ff92SAndroid Build Coastguard Worker            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
937*89c4ff92SAndroid Build Coastguard Workerendif()
938*89c4ff92SAndroid Build Coastguard Worker
939*89c4ff92SAndroid Build Coastguard Workerif(BUILD_BASE_PIPE_SERVER)
940*89c4ff92SAndroid Build Coastguard Worker    add_subdirectory(profiling/server/src/basePipeServer)
941*89c4ff92SAndroid Build Coastguard Workerendif()
942*89c4ff92SAndroid Build Coastguard Worker
943*89c4ff92SAndroid Build Coastguard Workerif(BUILD_TIMELINE_DECODER)
944*89c4ff92SAndroid Build Coastguard Worker    add_subdirectory(profiling/server/src/timelineDecoder)
945*89c4ff92SAndroid Build Coastguard Worker    add_subdirectory(src/timelineDecoder)
946*89c4ff92SAndroid Build Coastguard Workerendif()
947*89c4ff92SAndroid Build Coastguard Worker
948*89c4ff92SAndroid Build Coastguard Workerif(BUILD_GATORD_MOCK AND NOT BUILD_BASE_PIPE_SERVER)
949*89c4ff92SAndroid Build Coastguard Worker    message(ERROR, "In order to build GatordMock you must set BUILD_BASE_PIPE_SERVER = YES")
950*89c4ff92SAndroid Build Coastguard Workerendif()
951*89c4ff92SAndroid Build Coastguard Worker
952*89c4ff92SAndroid Build Coastguard Workerif(BUILD_GATORD_MOCK AND NOT BUILD_TIMELINE_DECODER)
953*89c4ff92SAndroid Build Coastguard Worker    message(ERROR, "In order to build GatordMock you must set BUILD_TIMELINE_DECODER = YES")
954*89c4ff92SAndroid Build Coastguard Workerendif()
955*89c4ff92SAndroid Build Coastguard Worker
956*89c4ff92SAndroid Build Coastguard Workerif(BUILD_GATORD_MOCK)
957*89c4ff92SAndroid Build Coastguard Worker    set(gatord_mock_sources)
958*89c4ff92SAndroid Build Coastguard Worker    list(APPEND gatord_mock_sources
959*89c4ff92SAndroid Build Coastguard Worker        tests/profiling/gatordmock/CommandFileParser.hpp
960*89c4ff92SAndroid Build Coastguard Worker        tests/profiling/gatordmock/CommandFileParser.cpp
961*89c4ff92SAndroid Build Coastguard Worker        tests/profiling/gatordmock/CommandLineProcessor.hpp
962*89c4ff92SAndroid Build Coastguard Worker        tests/profiling/gatordmock/CommandLineProcessor.cpp
963*89c4ff92SAndroid Build Coastguard Worker        tests/profiling/gatordmock/GatordMockService.hpp
964*89c4ff92SAndroid Build Coastguard Worker        tests/profiling/gatordmock/GatordMockService.cpp
965*89c4ff92SAndroid Build Coastguard Worker        tests/profiling/gatordmock/PeriodicCounterCaptureCommandHandler.cpp
966*89c4ff92SAndroid Build Coastguard Worker        tests/profiling/gatordmock/PeriodicCounterCaptureCommandHandler.hpp
967*89c4ff92SAndroid Build Coastguard Worker        tests/profiling/gatordmock/PeriodicCounterSelectionResponseHandler.cpp
968*89c4ff92SAndroid Build Coastguard Worker        tests/profiling/gatordmock/PeriodicCounterSelectionResponseHandler.hpp
969*89c4ff92SAndroid Build Coastguard Worker        tests/profiling/gatordmock/StreamMetadataCommandHandler.cpp
970*89c4ff92SAndroid Build Coastguard Worker        tests/profiling/gatordmock/StreamMetadataCommandHandler.hpp
971*89c4ff92SAndroid Build Coastguard Worker        tests/profiling/gatordmock/StubCommandHandler.hpp
972*89c4ff92SAndroid Build Coastguard Worker        )
973*89c4ff92SAndroid Build Coastguard Worker
974*89c4ff92SAndroid Build Coastguard Worker    add_library_ex(gatordMockService STATIC ${gatord_mock_sources})
975*89c4ff92SAndroid Build Coastguard Worker
976*89c4ff92SAndroid Build Coastguard Worker    target_include_directories(gatordMockService PRIVATE profiling/common/include
977*89c4ff92SAndroid Build Coastguard Worker                                                         profiling/client/include
978*89c4ff92SAndroid Build Coastguard Worker                                                         profiling/server/src/basePipeServer
979*89c4ff92SAndroid Build Coastguard Worker                                                         src/armnnUtils
980*89c4ff92SAndroid Build Coastguard Worker                                                         src/profiling
981*89c4ff92SAndroid Build Coastguard Worker                                                         src/timelineDecoder)
982*89c4ff92SAndroid Build Coastguard Worker
983*89c4ff92SAndroid Build Coastguard Worker    if(BUILD_UNIT_TESTS)
984*89c4ff92SAndroid Build Coastguard Worker        target_include_directories(UnitTests PRIVATE tests/profiling/gatordmock)
985*89c4ff92SAndroid Build Coastguard Worker        target_include_directories(UnitTests PRIVATE src/backends/backendsCommon/test)
986*89c4ff92SAndroid Build Coastguard Worker    endif()
987*89c4ff92SAndroid Build Coastguard Worker
988*89c4ff92SAndroid Build Coastguard Worker    add_executable_ex(GatordMock tests/profiling/gatordmock/GatordMockMain.cpp)
989*89c4ff92SAndroid Build Coastguard Worker
990*89c4ff92SAndroid Build Coastguard Worker    target_include_directories(GatordMock PRIVATE profiling/common/include
991*89c4ff92SAndroid Build Coastguard Worker                                                  profiling/client/include
992*89c4ff92SAndroid Build Coastguard Worker                                                  profiling/server/src/basePipeServer
993*89c4ff92SAndroid Build Coastguard Worker                                                  src/armnnUtils
994*89c4ff92SAndroid Build Coastguard Worker                                                  src/profiling
995*89c4ff92SAndroid Build Coastguard Worker                                                  src/timelineDecoder)
996*89c4ff92SAndroid Build Coastguard Worker
997*89c4ff92SAndroid Build Coastguard Worker    target_link_libraries(GatordMock PUBLIC
998*89c4ff92SAndroid Build Coastguard Worker                          armnn
999*89c4ff92SAndroid Build Coastguard Worker                          armnnBasePipeServer
1000*89c4ff92SAndroid Build Coastguard Worker                          timelineDecoder
1001*89c4ff92SAndroid Build Coastguard Worker                          gatordMockService)
1002*89c4ff92SAndroid Build Coastguard Worker
1003*89c4ff92SAndroid Build Coastguard Worker    if(Threads_FOUND AND (NOT ("${CMAKE_SYSTEM_NAME}" STREQUAL Android)))
1004*89c4ff92SAndroid Build Coastguard Worker        target_link_libraries(GatordMock PUBLIC ${CMAKE_THREAD_LIBS_INIT})
1005*89c4ff92SAndroid Build Coastguard Worker    endif()
1006*89c4ff92SAndroid Build Coastguard Worker
1007*89c4ff92SAndroid Build Coastguard Workerendif()
1008*89c4ff92SAndroid Build Coastguard Worker
1009*89c4ff92SAndroid Build Coastguard Worker####################################################
1010*89c4ff92SAndroid Build Coastguard Worker# export targets
1011*89c4ff92SAndroid Build Coastguard Workerset(armnn_export_targets)
1012*89c4ff92SAndroid Build Coastguard Workerlist(APPEND armnn_export_targets
1013*89c4ff92SAndroid Build Coastguard Worker    armnn
1014*89c4ff92SAndroid Build Coastguard Worker    armnnUtils
1015*89c4ff92SAndroid Build Coastguard Worker)
1016*89c4ff92SAndroid Build Coastguard Worker
1017*89c4ff92SAndroid Build Coastguard Workerinstall(
1018*89c4ff92SAndroid Build Coastguard Worker    TARGETS ${armnn_export_targets}
1019*89c4ff92SAndroid Build Coastguard Worker    EXPORT  armnn-targets
1020*89c4ff92SAndroid Build Coastguard Worker    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
1021*89c4ff92SAndroid Build Coastguard Worker    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
1022*89c4ff92SAndroid Build Coastguard Worker)
1023*89c4ff92SAndroid Build Coastguard Worker
1024*89c4ff92SAndroid Build Coastguard Worker####################################################
1025*89c4ff92SAndroid Build Coastguard Worker## Set export alias
1026*89c4ff92SAndroid Build Coastguard Workerset_target_properties(armnn
1027*89c4ff92SAndroid Build Coastguard Worker    PROPERTIES
1028*89c4ff92SAndroid Build Coastguard Worker    EXPORT_NAME Armnn
1029*89c4ff92SAndroid Build Coastguard Worker)
1030*89c4ff92SAndroid Build Coastguard Worker
1031*89c4ff92SAndroid Build Coastguard Worker## Export target scrips
1032*89c4ff92SAndroid Build Coastguard Workerinstall(
1033*89c4ff92SAndroid Build Coastguard Worker    EXPORT      armnn-targets
1034*89c4ff92SAndroid Build Coastguard Worker    FILE        ArmnnTargets.cmake
1035*89c4ff92SAndroid Build Coastguard Worker    NAMESPACE   Armnn::
1036*89c4ff92SAndroid Build Coastguard Worker    DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
1037*89c4ff92SAndroid Build Coastguard Worker)
1038*89c4ff92SAndroid Build Coastguard Worker
1039*89c4ff92SAndroid Build Coastguard Worker####################################################
1040*89c4ff92SAndroid Build Coastguard Worker## Create ArmnnConfig.cmake
1041*89c4ff92SAndroid Build Coastguard Workerinclude(CMakePackageConfigHelpers)
1042*89c4ff92SAndroid Build Coastguard Workerset(INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR})
1043*89c4ff92SAndroid Build Coastguard Worker
1044*89c4ff92SAndroid Build Coastguard Workermessage(STATUS "CMAKE_CURRENT_LIST_DIR ${CMAKE_CURRENT_LIST_DIR}" )
1045*89c4ff92SAndroid Build Coastguard Workermessage(STATUS "CMAKE_CURRENT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}" )
1046*89c4ff92SAndroid Build Coastguard Workerconfigure_package_config_file(
1047*89c4ff92SAndroid Build Coastguard Worker    ${CMAKE_CURRENT_LIST_DIR}/cmake/ArmnnConfig.cmake.in
1048*89c4ff92SAndroid Build Coastguard Worker    ${CMAKE_CURRENT_BINARY_DIR}/ArmnnConfig.cmake
1049*89c4ff92SAndroid Build Coastguard Worker    INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
1050*89c4ff92SAndroid Build Coastguard Worker)
1051*89c4ff92SAndroid Build Coastguard Worker
1052*89c4ff92SAndroid Build Coastguard Worker####################################################
1053*89c4ff92SAndroid Build Coastguard Worker## Install Armnn config file
1054*89c4ff92SAndroid Build Coastguard Workerinstall(
1055*89c4ff92SAndroid Build Coastguard Worker    FILES
1056*89c4ff92SAndroid Build Coastguard Worker    ${CMAKE_CURRENT_BINARY_DIR}/ArmnnConfig.cmake
1057*89c4ff92SAndroid Build Coastguard Worker    DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
1058*89c4ff92SAndroid Build Coastguard Worker)
1059*89c4ff92SAndroid Build Coastguard Worker
1060*89c4ff92SAndroid Build Coastguard Worker####################################################
1061*89c4ff92SAndroid Build Coastguard Worker## Export from build tree
1062*89c4ff92SAndroid Build Coastguard Workerexport(
1063*89c4ff92SAndroid Build Coastguard Worker    EXPORT      armnn-targets
1064*89c4ff92SAndroid Build Coastguard Worker    FILE        ${CMAKE_CURRENT_BINARY_DIR}/ArmnnTargets.cmake
1065*89c4ff92SAndroid Build Coastguard Worker    NAMESPACE   Armnn::
1066*89c4ff92SAndroid Build Coastguard Worker)
1067*89c4ff92SAndroid Build Coastguard Worker
1068*89c4ff92SAndroid Build Coastguard Workeradd_library(Armnn::Armnn ALIAS armnn)
1069*89c4ff92SAndroid Build Coastguard Workeradd_library(Armnn::armnnUtils ALIAS armnnUtils)
1070*89c4ff92SAndroid Build Coastguard Worker
1071*89c4ff92SAndroid Build Coastguard Worker####################################################
1072*89c4ff92SAndroid Build Coastguard Worker## Build Python bindings
1073*89c4ff92SAndroid Build Coastguard Workerif (BUILD_PYTHON_WHL OR BUILD_PYTHON_SRC)
1074*89c4ff92SAndroid Build Coastguard Worker    add_subdirectory(python/pyarmnn)
1075*89c4ff92SAndroid Build Coastguard Workerendif()
1076