blob: 6a1e6a46266dd0d6819e6a3c64c8af02d8154479 [file] [log] [blame]
telsoa014fcda012018-03-09 14:13:49 +00001cmake_minimum_required (VERSION 3.0.2) # 3.0.2 required for return() statement used in AddDllCopyCommands.cmake.
2project(armnn)
3
4set(additional_cmake_files)
5list(APPEND additional_cmake_files
6 cmake/Utils.cmake
7 cmake/GlobalConfig.cmake
8 cmake/AddDllCopyCommands.cmake)
9
10foreach(cmake_file ${additional_cmake_files})
11 include(${cmake_file})
12endforeach()
13
14if (BUILD_TESTS)
15 add_subdirectory(tests)
16endif()
17
18# Include the additional cmake files in their own target so that they will appear nicely in IDEs
19add_custom_target(AdditionalCMakeFiles SOURCES ${additional_cmake_files})
20
21set(armnnUtils_sources)
22list(APPEND armnnUtils_sources
23 src/armnnUtils/GraphTopologicalSort.hpp
24 src/armnnUtils/Logging.hpp
25 src/armnnUtils/Permute.hpp
26 src/armnnUtils/Logging.cpp
27 src/armnnUtils/Permute.cpp
surmeh01bceff2f2018-03-29 16:29:27 +010028 src/armnnUtils/DotSerializer.cpp
29 src/armnnUtils/DotSerializer.hpp
telsoa014fcda012018-03-09 14:13:49 +000030 )
surmeh01bceff2f2018-03-29 16:29:27 +010031if(BUILD_TF_PARSER OR BUILD_CAFFE_PARSER)
telsoa014fcda012018-03-09 14:13:49 +000032 list(APPEND armnnUtils_sources
33 src/armnnUtils/ParserPrototxtFixture.hpp
34 )
35endif()
36
37add_library_ex(armnnUtils STATIC ${armnnUtils_sources})
38
39if(BUILD_CAFFE_PARSER)
40 # ArmNN Parser source files required for all build options
41 set(armnn_caffe_parser_sources)
42 list(APPEND armnn_caffe_parser_sources
43 include/armnnCaffeParser/ICaffeParser.hpp
44 src/armnnCaffeParser/CaffeParser.hpp
45 src/armnnCaffeParser/CaffeParser.cpp
46 ${CAFFE_GENERATED_SOURCES}/caffe/proto/caffe.pb.cc
47 )
48 # The generated Caffe protobuf .cc file is not warning clean and we can't fix them.
49 if(COMPILER_IS_GNU_LIKE)
50 set_source_files_properties(${CAFFE_GENERATED_SOURCES}/caffe/proto/caffe.pb.cc PROPERTIES COMPILE_FLAGS "-Wno-conversion -Wno-sign-conversion")
51 endif()
52
53 add_library_ex(armnnCaffeParser SHARED ${armnn_caffe_parser_sources})
54 set_target_properties(armnnCaffeParser PROPERTIES COMPILE_FLAGS "${CAFFE_PARSER_ADDITIONAL_COMPILE_FLAGS}")
55
56 target_include_directories(armnnCaffeParser PRIVATE src/armnnUtils)
57
58 target_link_libraries(armnnCaffeParser ${Boost_LOG_LIBRARY} ${Boost_THREAD_LIBRARY} ${Boost_SYSTEM_LIBRARY})
59
60 target_link_libraries(armnnCaffeParser armnn)
61 target_link_libraries(armnnCaffeParser ${PROTOBUF_LIBRARIES})
62endif()
63
surmeh01bceff2f2018-03-29 16:29:27 +010064if(BUILD_TF_PARSER)
65 set(armnn_tf_parser_sources)
66 list(APPEND armnn_tf_parser_sources
67 include/armnnTfParser/ITfParser.hpp
68 src/armnnTfParser/TfParser.hpp
69 src/armnnTfParser/TfParser.cpp
70 ${TF_PROTOBUFS}
71 )
72 # The generated tensorflow protobuf .cc files are not warning clean and we can't fix them.
73 if(COMPILER_IS_GNU_LIKE)
74 set_source_files_properties(${TF_PROTOBUFS} PROPERTIES COMPILE_FLAGS "-Wno-conversion -Wno-sign-conversion")
75 endif()
76
77 add_library_ex(armnnTfParser SHARED ${armnn_tf_parser_sources})
78
79 target_include_directories(armnnTfParser PRIVATE src/armnnUtils)
80
81 target_link_libraries(armnnTfParser armnn)
82
83 # Protobuf (use the specific version tensorflow wants)
84 target_link_libraries(armnnTfParser ${PROTOBUF_LIBRARIES})
85endif()
86
telsoa014fcda012018-03-09 14:13:49 +000087# ArmNN source files required for all build options
88list(APPEND armnn_sources
89 include/armnn/ArmNN.hpp
90 include/armnn/Descriptors.hpp
91 include/armnn/DescriptorsFwd.hpp
92 include/armnn/IRuntime.hpp
93 include/armnn/INetwork.hpp
94 include/armnn/Tensor.hpp
95 include/armnn/TensorFwd.hpp
96 include/armnn/Types.hpp
97 include/armnn/TypesUtils.hpp
98 include/armnn/Utils.hpp
99 include/armnn/LayerSupport.hpp
100 include/armnn/Version.hpp
101 src/armnn/backends/ClWorkloadFactory.hpp
102 src/armnn/backends/ClWorkloadFactory.cpp
103 src/armnn/backends/ClLayerSupport.cpp
104 src/armnn/backends/ClLayerSupport.hpp
105 src/armnn/backends/CpuTensorHandleFwd.hpp
106 src/armnn/backends/CpuTensorHandle.hpp
107 src/armnn/backends/CpuTensorHandle.cpp
108 src/armnn/backends/RefWorkloadFactory.cpp
109 src/armnn/backends/RefWorkloadFactory.hpp
110 src/armnn/backends/RefLayerSupport.cpp
111 src/armnn/backends/RefLayerSupport.hpp
112 src/armnn/backends/MakeWorkloadHelper.hpp
113 src/armnn/backends/NeonWorkloadFactory.cpp
114 src/armnn/backends/NeonWorkloadFactory.hpp
115 src/armnn/backends/NeonLayerSupport.cpp
116 src/armnn/backends/NeonLayerSupport.hpp
117 src/armnn/backends/Workload.hpp
118 src/armnn/backends/WorkloadDataFwd.hpp
119 src/armnn/backends/WorkloadData.hpp
120 src/armnn/backends/WorkloadData.cpp
121 src/armnn/backends/WorkloadFactory.hpp
122 src/armnn/backends/WorkloadFactory.cpp
123 src/armnn/backends/WorkloadInfo.hpp
124 src/armnn/backends/MemCopyWorkload.cpp
125 src/armnn/backends/MemCopyWorkload.hpp
126 src/armnn/backends/RefWorkloads/Broadcast.hpp
127 src/armnn/backends/RefWorkloads/Broadcast.cpp
128 src/armnn/backends/RefWorkloads/RefMergerUint8Workload.cpp
129 src/armnn/backends/RefWorkloads/RefConstantUint8Workload.hpp
130 src/armnn/backends/RefWorkloads/Addition.hpp
131 src/armnn/backends/RefWorkloads/ConvImpl.hpp
132 src/armnn/backends/RefWorkloads/RefResizeBilinearUint8Workload.cpp
133 src/armnn/backends/RefWorkloads/RefMultiplicationUint8Workload.hpp
134 src/armnn/backends/RefWorkloads/FullyConnected.cpp
135 src/armnn/backends/RefWorkloads/RefFullyConnectedFloat32Workload.cpp
136 src/armnn/backends/RefWorkloads/RefSoftmaxFloat32Workload.cpp
137 src/armnn/backends/RefWorkloads/RefBaseConstantWorkload.hpp
138 src/armnn/backends/RefWorkloads/RefConvolution2dUint8Workload.hpp
139 src/armnn/backends/RefWorkloads/RefSplitterUint8Workload.hpp
140 src/armnn/backends/RefWorkloads/RefActivationFloat32Workload.cpp
141 src/armnn/backends/RefWorkloads/RefBatchNormalizationUint8Workload.cpp
142 src/armnn/backends/RefWorkloads/RefResizeBilinearUint8Workload.hpp
143 src/armnn/backends/RefWorkloads/Multiplication.cpp
144 src/armnn/backends/RefWorkloads/RefMultiplicationUint8Workload.cpp
145 src/armnn/backends/RefWorkloads/RefL2NormalizationFloat32Workload.hpp
146 src/armnn/backends/RefWorkloads/Multiplication.hpp
147 src/armnn/backends/RefWorkloads/RefActivationUint8Workload.hpp
148 src/armnn/backends/RefWorkloads/RefBaseConstantWorkload.cpp
149 src/armnn/backends/RefWorkloads/RefAdditionUint8Workload.cpp
150 src/armnn/backends/RefWorkloads/RefResizeBilinearFloat32Workload.cpp
151 src/armnn/backends/RefWorkloads/RefBatchNormalizationFloat32Workload.cpp
152 src/armnn/backends/RefWorkloads/RefPooling2dFloat32Workload.hpp
153 src/armnn/backends/RefWorkloads/RefWorkloadUtils.hpp
154 src/armnn/backends/RefWorkloads/RefMergerUint8Workload.hpp
155 src/armnn/backends/RefWorkloads/RefFullyConnectedFloat32Workload.hpp
156 src/armnn/backends/RefWorkloads/Softmax.hpp
157 src/armnn/backends/RefWorkloads/RefMergerFloat32Workload.hpp
158 src/armnn/backends/RefWorkloads/Addition.cpp
159 src/armnn/backends/RefWorkloads/RefFakeQuantizationFloat32Workload.cpp
160 src/armnn/backends/RefWorkloads/TensorBufferArrayView.hpp
161 src/armnn/backends/RefWorkloads/ResizeBilinear.cpp
162 src/armnn/backends/RefWorkloads/RefBatchNormalizationFloat32Workload.hpp
163 src/armnn/backends/RefWorkloads/Splitter.hpp
164 src/armnn/backends/RefWorkloads/RefFullyConnectedUint8Workload.hpp
165 src/armnn/backends/RefWorkloads/RefSoftmaxUint8Workload.cpp
166 src/armnn/backends/RefWorkloads/RefReshapeFloat32Workload.hpp
167 src/armnn/backends/RefWorkloads/RefDepthwiseConvolution2dUint8Workload.hpp
168 src/armnn/backends/RefWorkloads/FullyConnected.hpp
169 src/armnn/backends/RefWorkloads/RefFloorFloat32Workload.hpp
170 src/armnn/backends/RefWorkloads/RefDepthwiseConvolution2dFloat32Workload.cpp
171 src/armnn/backends/RefWorkloads/RefPooling2dUint8Workload.cpp
172 src/armnn/backends/RefWorkloads/RefFloorFloat32Workload.cpp
173 src/armnn/backends/RefWorkloads/ConvImpl.cpp
174 src/armnn/backends/RefWorkloads/RefSoftmaxFloat32Workload.hpp
175 src/armnn/backends/RefWorkloads/RefSoftmaxUint8Workload.hpp
176 src/armnn/backends/RefWorkloads/RefReshapeUint8Workload.hpp
177 src/armnn/backends/RefWorkloads/Activation.cpp
178 src/armnn/backends/RefWorkloads/RefResizeBilinearFloat32Workload.hpp
179 src/armnn/backends/RefWorkloads/RefAdditionUint8Workload.hpp
180 src/armnn/backends/RefWorkloads/RefReshapeUint8Workload.cpp
181 src/armnn/backends/RefWorkloads/RefMultiplicationFloat32Workload.hpp
182 src/armnn/backends/RefWorkloads/RefL2NormalizationFloat32Workload.cpp
183 src/armnn/backends/RefWorkloads/RefConvolution2dFloat32Workload.cpp
184 src/armnn/backends/RefWorkloads/RefBatchNormalizationUint8Workload.hpp
185 src/armnn/backends/RefWorkloads/RefConvolution2dUint8Workload.cpp
186 src/armnn/backends/RefWorkloads/ResizeBilinear.hpp
187 src/armnn/backends/RefWorkloads/RefNormalizationFloat32Workload.hpp
188 src/armnn/backends/RefWorkloads/RefDepthwiseConvolution2dFloat32Workload.hpp
189 src/armnn/backends/RefWorkloads/RefSplitterFloat32Workload.cpp
190 src/armnn/backends/RefWorkloads/RefActivationUint8Workload.cpp
191 src/armnn/backends/RefWorkloads/RefPooling2dUint8Workload.hpp
192 src/armnn/backends/RefWorkloads/BatchNormImpl.hpp
193 src/armnn/backends/RefWorkloads/RefSplitterUint8Workload.cpp
194 src/armnn/backends/RefWorkloads/Activation.hpp
195 src/armnn/backends/RefWorkloads/RefPooling2dFloat32Workload.cpp
196 src/armnn/backends/RefWorkloads/Merger.hpp
197 src/armnn/backends/RefWorkloads/RefSplitterFloat32Workload.hpp
198 src/armnn/backends/RefWorkloads/RefConstantFloat32Workload.hpp
199 src/armnn/backends/RefWorkloads/RefActivationFloat32Workload.hpp
200 src/armnn/backends/RefWorkloads/RefMultiplicationFloat32Workload.cpp
201 src/armnn/backends/RefWorkloads/RefReshapeFloat32Workload.cpp
202 src/armnn/backends/RefWorkloads/RefNormalizationFloat32Workload.cpp
203 src/armnn/backends/RefWorkloads/Softmax.cpp
204 src/armnn/backends/RefWorkloads/RefDepthwiseConvolution2dUint8Workload.cpp
205 src/armnn/backends/RefWorkloads/RefConstantUint8Workload.cpp
206 src/armnn/backends/RefWorkloads/RefConstantFloat32Workload.cpp
207 src/armnn/backends/RefWorkloads/Pooling2d.cpp
208 src/armnn/backends/RefWorkloads/RefAdditionFloat32Workload.cpp
209 src/armnn/backends/RefWorkloads/RefConvolution2dFloat32Workload.hpp
210 src/armnn/backends/RefWorkloads/RefAdditionFloat32Workload.hpp
211 src/armnn/backends/RefWorkloads/RefMergerFloat32Workload.cpp
212 src/armnn/backends/RefWorkloads/Pooling2d.hpp
213 src/armnn/backends/RefWorkloads/RefFullyConnectedUint8Workload.cpp
214 src/armnn/backends/RefWorkloads/RefFakeQuantizationFloat32Workload.hpp
215 src/armnn/backends/RefWorkloads/RefPermuteWorkload.hpp
216 src/armnn/backends/RefWorkloads/RefPermuteWorkload.cpp
217 src/armnn/InternalTypes.hpp
218 src/armnn/InternalTypes.cpp
219 src/armnn/LayerFwd.hpp
220 src/armnn/Layer.hpp
221 src/armnn/Layer.cpp
222 src/armnn/LayersFwd.hpp
223 src/armnn/Layers.hpp
224 src/armnn/Layers.cpp
225 src/armnn/Runtime.hpp
226 src/armnn/Runtime.cpp
surmeh01bceff2f2018-03-29 16:29:27 +0100227 src/armnn/SerializeLayerParameters.cpp
228 src/armnn/SerializeLayerParameters.hpp
telsoa014fcda012018-03-09 14:13:49 +0000229 src/armnn/Descriptors.cpp
230 src/armnn/LoadedNetwork.hpp
231 src/armnn/LoadedNetwork.cpp
232 src/armnn/Exceptions.cpp
233 src/armnn/Graph.hpp
234 src/armnn/Graph.cpp
235 src/armnn/Network.hpp
236 src/armnn/Network.cpp
237 src/armnn/backends/OutputHandler.hpp
238 src/armnn/backends/OutputHandler.cpp
239 src/armnn/Profiling.cpp
240 src/armnn/Tensor.cpp
241 src/armnn/Utils.cpp
242 src/armnn/LayerSupport.cpp
243 src/armnn/LayerSupportCommon.hpp
244 src/armnn/optimizations/All.hpp
245 src/armnn/optimizations/MovePermuteUp.hpp
246 src/armnn/optimizations/Optimization.hpp
247 src/armnn/optimizations/OptimizeConsecutiveReshapes.hpp
248 src/armnn/optimizations/OptimizeInversePermutes.hpp
249 src/armnn/optimizations/PermuteAsReshape.hpp
250 src/armnn/optimizations/SquashEqualSiblings.hpp
251 src/armnn/Optimizer.hpp
252 src/armnn/Optimizer.cpp
253 )
254
255if(ARMCOMPUTENEON)
256 # Additionally include source files for ARM Compute NEON backend
257 list(APPEND armnn_sources
258 src/armnn/backends/NeonWorkloads/NeonActivationFloat32Workload.cpp
259 src/armnn/backends/NeonWorkloads/NeonActivationFloat32Workload.hpp
260 src/armnn/backends/NeonWorkloads/NeonActivationUint8Workload.cpp
261 src/armnn/backends/NeonWorkloads/NeonActivationUint8Workload.hpp
262 src/armnn/backends/NeonWorkloads/NeonAdditionFloat32Workload.cpp
263 src/armnn/backends/NeonWorkloads/NeonAdditionFloat32Workload.hpp
264 src/armnn/backends/NeonWorkloads/NeonBaseConstantWorkload.hpp
265 src/armnn/backends/NeonWorkloads/NeonBaseMergerWorkload.hpp
266 src/armnn/backends/NeonWorkloads/NeonBaseSplitterWorkload.hpp
267 src/armnn/backends/NeonWorkloads/NeonBatchNormalizationFloat32Workload.cpp
268 src/armnn/backends/NeonWorkloads/NeonBatchNormalizationFloat32Workload.hpp
269 src/armnn/backends/NeonWorkloads/NeonConstantFloat32Workload.cpp
270 src/armnn/backends/NeonWorkloads/NeonConstantFloat32Workload.hpp
271 src/armnn/backends/NeonWorkloads/NeonConstantUint8Workload.cpp
272 src/armnn/backends/NeonWorkloads/NeonConstantUint8Workload.hpp
273 src/armnn/backends/NeonWorkloads/NeonConvolution2dBaseWorkload.cpp
274 src/armnn/backends/NeonWorkloads/NeonConvolution2dBaseWorkload.hpp
275 src/armnn/backends/NeonWorkloads/NeonConvolution2dFloat32Workload.cpp
276 src/armnn/backends/NeonWorkloads/NeonConvolution2dFloat32Workload.hpp
surmeh01bceff2f2018-03-29 16:29:27 +0100277 src/armnn/backends/NeonWorkloads/NeonConvolution2dUint8Workload.cpp
278 src/armnn/backends/NeonWorkloads/NeonConvolution2dUint8Workload.hpp
telsoa014fcda012018-03-09 14:13:49 +0000279 src/armnn/backends/NeonWorkloads/NeonDepthwiseConvolutionFloat32Workload.cpp
280 src/armnn/backends/NeonWorkloads/NeonDepthwiseConvolutionFloat32Workload.hpp
281 src/armnn/backends/NeonWorkloads/NeonDepthwiseConvolutionUint8Workload.cpp
282 src/armnn/backends/NeonWorkloads/NeonDepthwiseConvolutionUint8Workload.hpp
283 src/armnn/backends/NeonWorkloads/NeonFloorFloat32Workload.cpp
284 src/armnn/backends/NeonWorkloads/NeonFloorFloat32Workload.hpp
285 src/armnn/backends/NeonWorkloads/NeonFullyConnectedFloat32Workload.cpp
286 src/armnn/backends/NeonWorkloads/NeonFullyConnectedFloat32Workload.hpp
287 src/armnn/backends/NeonWorkloads/NeonL2NormalizationFloat32Workload.cpp
288 src/armnn/backends/NeonWorkloads/NeonL2NormalizationFloat32Workload.hpp
289 src/armnn/backends/NeonWorkloads/NeonMergerFloat32Workload.cpp
290 src/armnn/backends/NeonWorkloads/NeonMergerFloat32Workload.hpp
291 src/armnn/backends/NeonWorkloads/NeonMergerUint8Workload.cpp
292 src/armnn/backends/NeonWorkloads/NeonMergerUint8Workload.hpp
293 src/armnn/backends/NeonWorkloads/NeonMultiplicationFloat32Workload.cpp
294 src/armnn/backends/NeonWorkloads/NeonMultiplicationFloat32Workload.hpp
295 src/armnn/backends/NeonWorkloads/NeonNormalizationFloat32Workload.cpp
296 src/armnn/backends/NeonWorkloads/NeonNormalizationFloat32Workload.hpp
297 src/armnn/backends/NeonWorkloads/NeonPermuteWorkload.cpp
298 src/armnn/backends/NeonWorkloads/NeonPermuteWorkload.hpp
299 src/armnn/backends/NeonWorkloads/NeonPooling2dBaseWorkload.cpp
300 src/armnn/backends/NeonWorkloads/NeonPooling2dBaseWorkload.hpp
301 src/armnn/backends/NeonWorkloads/NeonPooling2dFloat32Workload.cpp
302 src/armnn/backends/NeonWorkloads/NeonPooling2dFloat32Workload.hpp
303 src/armnn/backends/NeonWorkloads/NeonPooling2dUint8Workload.cpp
304 src/armnn/backends/NeonWorkloads/NeonPooling2dUint8Workload.hpp
305 src/armnn/backends/NeonWorkloads/NeonReshapeFloat32Workload.cpp
306 src/armnn/backends/NeonWorkloads/NeonReshapeFloat32Workload.hpp
307 src/armnn/backends/NeonWorkloads/NeonReshapeUint8Workload.cpp
308 src/armnn/backends/NeonWorkloads/NeonReshapeUint8Workload.hpp
309 src/armnn/backends/NeonWorkloads/NeonSoftmaxFloat32Workload.cpp
310 src/armnn/backends/NeonWorkloads/NeonSoftmaxFloat32Workload.hpp
311 src/armnn/backends/NeonWorkloads/NeonSoftmaxUint8Workload.cpp
312 src/armnn/backends/NeonWorkloads/NeonSoftmaxUint8Workload.hpp
313 src/armnn/backends/NeonWorkloads/NeonSplitterFloat32Workload.cpp
314 src/armnn/backends/NeonWorkloads/NeonSplitterFloat32Workload.hpp
315 src/armnn/backends/NeonWorkloads/NeonSplitterUint8Workload.cpp
316 src/armnn/backends/NeonWorkloads/NeonSplitterUint8Workload.hpp
317 src/armnn/backends/NeonWorkloadUtils.cpp
318 src/armnn/backends/NeonWorkloadUtils.hpp
319 src/armnn/backends/NeonTensorHandle.hpp)
320endif()
321if(ARMCOMPUTECL)
322 # Additionally include source files for ARM Compute OpenCL backend
323 list(APPEND armnn_sources
324 src/armnn/backends/ClWorkloads/ClActivationFloat32Workload.cpp
325 src/armnn/backends/ClWorkloads/ClActivationFloat32Workload.hpp
326 src/armnn/backends/ClWorkloads/ClActivationUint8Workload.cpp
327 src/armnn/backends/ClWorkloads/ClActivationUint8Workload.hpp
328 src/armnn/backends/ClWorkloads/ClAdditionFloat32Workload.cpp
329 src/armnn/backends/ClWorkloads/ClAdditionFloat32Workload.hpp
330 src/armnn/backends/ClWorkloads/ClBaseConstantWorkload.cpp
331 src/armnn/backends/ClWorkloads/ClBaseConstantWorkload.hpp
332 src/armnn/backends/ClWorkloads/ClBaseMergerWorkload.hpp
333 src/armnn/backends/ClWorkloads/ClBatchNormalizationFloat32Workload.cpp
334 src/armnn/backends/ClWorkloads/ClBatchNormalizationFloat32Workload.hpp
335 src/armnn/backends/ClWorkloads/ClConstantFloat32Workload.cpp
336 src/armnn/backends/ClWorkloads/ClConstantFloat32Workload.hpp
337 src/armnn/backends/ClWorkloads/ClConstantUint8Workload.cpp
338 src/armnn/backends/ClWorkloads/ClConstantUint8Workload.hpp
339 src/armnn/backends/ClWorkloads/ClConvolution2dFloat32Workload.cpp
340 src/armnn/backends/ClWorkloads/ClConvolution2dFloat32Workload.hpp
341 src/armnn/backends/ClWorkloads/ClConvolution2dUint8Workload.cpp
342 src/armnn/backends/ClWorkloads/ClConvolution2dUint8Workload.hpp
343 src/armnn/backends/ClWorkloads/ClDepthwiseConvolutionFloat32Workload.cpp
344 src/armnn/backends/ClWorkloads/ClDepthwiseConvolutionFloat32Workload.hpp
345 src/armnn/backends/ClWorkloads/ClDepthwiseConvolutionUint8Workload.cpp
346 src/armnn/backends/ClWorkloads/ClDepthwiseConvolutionUint8Workload.hpp
347 src/armnn/backends/ClWorkloads/ClDepthwiseConvolutionHelper.hpp
348 src/armnn/backends/ClWorkloads/ClFloorFloat32Workload.cpp
349 src/armnn/backends/ClWorkloads/ClFloorFloat32Workload.hpp
350 src/armnn/backends/ClWorkloads/ClFullyConnectedFloat32Workload.cpp
351 src/armnn/backends/ClWorkloads/ClFullyConnectedFloat32Workload.hpp
352 src/armnn/backends/ClWorkloads/ClL2NormalizationFloat32Workload.cpp
353 src/armnn/backends/ClWorkloads/ClL2NormalizationFloat32Workload.hpp
354 src/armnn/backends/ClWorkloads/ClMergerFloat32Workload.cpp
355 src/armnn/backends/ClWorkloads/ClMergerFloat32Workload.hpp
356 src/armnn/backends/ClWorkloads/ClMergerUint8Workload.cpp
357 src/armnn/backends/ClWorkloads/ClMergerUint8Workload.hpp
358 src/armnn/backends/ClWorkloads/ClMultiplicationFloat32Workload.cpp
359 src/armnn/backends/ClWorkloads/ClMultiplicationFloat32Workload.hpp
360 src/armnn/backends/ClWorkloads/ClNormalizationFloat32Workload.cpp
361 src/armnn/backends/ClWorkloads/ClNormalizationFloat32Workload.hpp
362 src/armnn/backends/ClWorkloads/ClPermuteWorkload.cpp
363 src/armnn/backends/ClWorkloads/ClPermuteWorkload.hpp
364 src/armnn/backends/ClWorkloads/ClPooling2dBaseWorkload.cpp
365 src/armnn/backends/ClWorkloads/ClPooling2dBaseWorkload.hpp
366 src/armnn/backends/ClWorkloads/ClPooling2dFloat32Workload.cpp
367 src/armnn/backends/ClWorkloads/ClPooling2dFloat32Workload.hpp
368 src/armnn/backends/ClWorkloads/ClPooling2dUint8Workload.cpp
369 src/armnn/backends/ClWorkloads/ClPooling2dUint8Workload.hpp
370 src/armnn/backends/ClWorkloads/ClReshapeFloat32Workload.cpp
371 src/armnn/backends/ClWorkloads/ClReshapeFloat32Workload.hpp
372 src/armnn/backends/ClWorkloads/ClReshapeUint8Workload.cpp
373 src/armnn/backends/ClWorkloads/ClReshapeUint8Workload.hpp
374 src/armnn/backends/ClWorkloads/ClResizeBilinearFloat32Workload.cpp
375 src/armnn/backends/ClWorkloads/ClResizeBilinearFloat32Workload.hpp
376 src/armnn/backends/ClWorkloads/ClSoftmaxFloat32Workload.cpp
377 src/armnn/backends/ClWorkloads/ClSoftmaxFloat32Workload.hpp
378 src/armnn/backends/ClWorkloads/ClSoftmaxUint8Workload.cpp
379 src/armnn/backends/ClWorkloads/ClSoftmaxUint8Workload.hpp
380 src/armnn/backends/ClWorkloads/ClSplitterFloat32Workload.cpp
381 src/armnn/backends/ClWorkloads/ClSplitterFloat32Workload.hpp
382 src/armnn/backends/ClWorkloads/ClSplitterUint8Workload.cpp
383 src/armnn/backends/ClWorkloads/ClSplitterUint8Workload.hpp
384 src/armnn/backends/ClWorkloadUtils.hpp
385 src/armnn/backends/ClTensorHandle.hpp)
386endif()
387# Files shared by all ARM Compute backends
388if(ARMCOMPUTENEON OR ARMCOMPUTECL)
389 list(APPEND armnn_sources
390 src/armnn/backends/ArmComputeTensorUtils.hpp
391 src/armnn/backends/ArmComputeTensorUtils.cpp
392 src/armnn/backends/ArmComputeUtils.hpp)
393endif()
394
395# Files used for Streamline-based profiling backend
396if(PROFILING_BACKEND_STREAMLINE)
397 list(APPEND armnn_sources
398 ${GATOR_ROOT}/annotate/streamline_annotate.h
399 ${GATOR_ROOT}/annotate/streamline_annotate.c)
400endif()
401
402add_library_ex(armnn SHARED ${armnn_sources})
403target_include_directories(armnn PRIVATE src/armnn)
404target_include_directories(armnn PRIVATE src/armnnUtils)
405target_link_libraries(armnn armnnUtils)
406target_link_libraries(armnn ${CMAKE_DL_LIBS})
407
408install(TARGETS armnn DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
409if(BUILD_CAFFE_PARSER)
410 install(TARGETS armnnCaffeParser DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
411endif()
surmeh01bceff2f2018-03-29 16:29:27 +0100412if(BUILD_TF_PARSER)
413 install(TARGETS armnnTfParser DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
414endif()
telsoa014fcda012018-03-09 14:13:49 +0000415install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include)
416
417target_link_libraries(armnn ${Boost_LOG_LIBRARY} ${Boost_THREAD_LIBRARY} ${Boost_SYSTEM_LIBRARY})
418
419if(ARMCOMPUTENEON OR ARMCOMPUTECL)
420 target_link_libraries(armnn ${ARMCOMPUTE_LIBRARIES})
421endif()
422if(ARMCOMPUTECL)
423 target_link_libraries(armnn ${OPENCL_LIBRARIES})
424endif()
425
426if(PROFILING_BACKEND_STREAMLINE)
427 target_link_libraries(armnn pthread)
428endif()
429
430
431if(BUILD_UNIT_TESTS)
432 set(unittest_sources)
433 list(APPEND unittest_sources
434 src/armnn/test/UnitTests.cpp
435 src/armnn/test/UnitTests.hpp
436 src/armnn/test/EndToEndTest.cpp
437 src/armnn/test/UtilsTests.cpp
438 src/armnn/test/GraphTests.cpp
surmeh01bceff2f2018-03-29 16:29:27 +0100439 src/armnn/test/OptimizerTests.cpp
telsoa014fcda012018-03-09 14:13:49 +0000440 src/armnn/test/RuntimeTests.cpp
441 src/armnn/test/CreateWorkload.hpp
442 src/armnn/test/TensorTest.cpp
443 src/armnn/test/TensorHelpers.hpp
444 src/armnn/test/Network_test.cpp
445 src/armnn/test/GraphUtils.hpp
446 src/armnn/backends/test/IsLayerSupportedTest.cpp
447 src/armnn/backends/test/IsLayerSupportedTestImpl.hpp
448 src/armnn/backends/test/Reference.cpp
449 src/armnn/backends/test/WorkloadDataValidation.cpp
450 src/armnn/backends/test/TensorCopyUtils.hpp
451 src/armnn/backends/test/TensorCopyUtils.cpp
452 src/armnn/backends/test/LayerTests.hpp
453 src/armnn/backends/test/LayerTests.cpp
454 src/armnn/backends/test/Conv2dTestImpl.hpp
455 src/armnn/backends/test/ActivationTestImpl.hpp
456 src/armnn/backends/test/ActivationFixture.hpp
457 src/armnn/backends/test/Pooling2dTestImpl.hpp
458 src/armnn/backends/test/ReshapeTestImpl.hpp
459 src/armnn/backends/test/PermuteTestImpl.hpp
460 src/armnn/backends/test/FullyConnectedTestImpl.hpp
461 src/armnn/backends/test/SplitterTestImpl.hpp
462 src/armnn/backends/test/NormTestImpl.hpp
463 src/armnn/backends/test/BatchNormTestImpl.hpp
464 src/armnn/backends/test/WorkloadTestUtils.hpp
465 src/armnn/backends/test/CreateWorkloadRef.cpp
466 src/armnn/backends/test/QuantizeHelper.hpp)
467
468 if(ARMCOMPUTENEON)
469 list(APPEND unittest_sources
470 src/armnn/backends/test/ArmComputeNeon.cpp
471 src/armnn/backends/test/CreateWorkloadNeon.cpp
472 src/armnn/test/CreateWorkloadClNeon.hpp)
473 endif()
474
475 if(ARMCOMPUTECL)
476 list(APPEND unittest_sources
477 src/armnn/backends/test/ArmComputeCl.cpp
478 src/armnn/backends/test/CreateWorkloadCl.cpp
479 src/armnn/test/CreateWorkloadClNeon.hpp)
480 endif()
481
482 if(ARMCOMPUTENEON OR ARMCOMPUTECL)
483 list(APPEND unittest_sources
484 src/armnn/backends/test/MemCopyTests.cpp)
485 endif()
486
surmeh01bceff2f2018-03-29 16:29:27 +0100487 if(BUILD_TF_PARSER)
488 list(APPEND unittest_sources
489 src/armnnTfParser/test/Activations.cpp
490 src/armnnTfParser/test/Addition.cpp
491 src/armnnTfParser/test/BiasAdd.cpp
492 src/armnnTfParser/test/BroadcastForAdd.cpp
493 src/armnnTfParser/test/Convolution2d.cpp
494 src/armnnTfParser/test/Concat.cpp
495 src/armnnTfParser/test/ConcatOfConcats.cpp
496 src/armnnTfParser/test/DepthwiseConvolution2d.cpp
497 src/armnnTfParser/test/FusedBatchNorm.cpp
498 src/armnnTfParser/test/Identity.cpp
499 src/armnnTfParser/test/LocalResponseNormalization.cpp
500 src/armnnTfParser/test/Multiplication.cpp
501 src/armnnTfParser/test/MultiOutput.cpp
502 src/armnnTfParser/test/PassThru.cpp
503 src/armnnTfParser/test/Pooling.cpp
504 src/armnnTfParser/test/Reshape.cpp
505 src/armnnTfParser/test/ResizeBilinear.cpp
506 src/armnnTfParser/test/Shape.cpp
507 src/armnnTfParser/test/Softmax.cpp
508 src/armnnTfParser/test/TestDependencies.cpp
509 src/armnnTfParser/test/FullyConnected.cpp
510 src/armnnTfParser/test/Constant.cpp
511 src/armnnTfParser/test/TestMultiInputsOutputs.cpp
512 src/armnnTfParser/test/Squeeze.cpp)
513 endif()
514
telsoa014fcda012018-03-09 14:13:49 +0000515 if(BUILD_CAFFE_PARSER)
516 list(APPEND unittest_sources
517 src/armnnCaffeParser/test/TestAdd.cpp
518 src/armnnCaffeParser/test/TestConcat.cpp
519 src/armnnCaffeParser/test/TestDropout.cpp
520 src/armnnCaffeParser/test/TestInputs.cpp
521 src/armnnCaffeParser/test/TestMul.cpp
522 src/armnnCaffeParser/test/TestPooling2d.cpp
523 src/armnnCaffeParser/test/TestInPlace.cpp
524 src/armnnCaffeParser/test/TestMultiInputsOutputs.cpp
525 src/armnnCaffeParser/test/TestSplit.cpp
526 )
527 endif()
528
529 add_executable_ex(UnitTests ${unittest_sources})
530 target_include_directories(UnitTests PRIVATE src/armnn)
531 target_include_directories(UnitTests PRIVATE src/armnnUtils)
532
533 CHECK_INCLUDE_FILE(valgrind/memcheck.h VALGRIND_FOUND)
534
535 if(VALGRIND_FOUND)
536 target_compile_definitions(UnitTests PRIVATE "WITH_VALGRIND=1")
537 endif()
538
539 target_link_libraries(UnitTests armnn)
540 target_link_libraries(UnitTests ${CMAKE_THREAD_LIBS_INIT})
541 target_link_libraries(UnitTests ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY})
542
surmeh01bceff2f2018-03-29 16:29:27 +0100543 if(BUILD_TF_PARSER)
544 target_link_libraries(UnitTests armnnTfParser)
545 endif()
546
telsoa014fcda012018-03-09 14:13:49 +0000547 if(BUILD_CAFFE_PARSER)
548 target_link_libraries(UnitTests armnnCaffeParser)
549 endif()
550
551 addDllCopyCommands(UnitTests)
552endif()
553