IVGCVSW-4487 Remove boost::filesystem
[platform/upstream/armnn.git] / tests / CMakeLists.txt
1 # UnitTests
2 include(CheckIncludeFiles)
3
4 # Setup the inference test framework
5 set(inference_test_sources
6     ClassifierTestCaseData.hpp
7     InferenceModel.hpp
8     InferenceTest.hpp
9     InferenceTest.inl
10     InferenceTest.cpp
11     InferenceTestImage.hpp
12     InferenceTestImage.cpp)
13
14 add_library_ex(inferenceTest STATIC ${inference_test_sources})
15 target_include_directories(inferenceTest PRIVATE ../src/armnnUtils)
16 target_include_directories(inferenceTest PRIVATE ../src/backends)
17 target_include_directories(inferenceTest PRIVATE ../third-party/stb)
18
19 if(BUILD_CAFFE_PARSER)
20     macro(CaffeParserTest testName sources)
21         add_executable_ex(${testName} ${sources})
22         target_include_directories(${testName} PRIVATE ../src/armnnUtils)
23         target_include_directories(${testName} PRIVATE ../src/backends)
24         set_target_properties(${testName} PROPERTIES COMPILE_FLAGS "${CAFFE_PARSER_TEST_ADDITIONAL_COMPILE_FLAGS}")
25
26         target_link_libraries(${testName} inferenceTest)
27         target_link_libraries(${testName} armnnCaffeParser)
28         target_link_libraries(${testName} armnn)
29         target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
30         target_link_libraries(${testName}
31             ${Boost_SYSTEM_LIBRARY}
32             ${Boost_PROGRAM_OPTIONS_LIBRARY})
33         addDllCopyCommands(${testName})
34     endmacro()
35
36     set(CaffeCifar10AcrossChannels-Armnn_sources
37         CaffeCifar10AcrossChannels-Armnn/CaffeCifar10AcrossChannels-Armnn.cpp
38         Cifar10Database.hpp
39         Cifar10Database.cpp)
40     CaffeParserTest(CaffeCifar10AcrossChannels-Armnn "${CaffeCifar10AcrossChannels-Armnn_sources}")
41
42     set(CaffeMnist-Armnn_sources
43         CaffeMnist-Armnn/CaffeMnist-Armnn.cpp
44         MnistDatabase.hpp
45         MnistDatabase.cpp)
46     CaffeParserTest(CaffeMnist-Armnn "${CaffeMnist-Armnn_sources}")
47
48     set(CaffeAlexNet-Armnn_sources
49         CaffeAlexNet-Armnn/CaffeAlexNet-Armnn.cpp
50         CaffePreprocessor.hpp
51         CaffePreprocessor.cpp)
52     CaffeParserTest(CaffeAlexNet-Armnn "${CaffeAlexNet-Armnn_sources}")
53
54     set(MultipleNetworksCifar10_SRC
55         MultipleNetworksCifar10/MultipleNetworksCifar10.cpp
56         Cifar10Database.hpp
57         Cifar10Database.cpp)
58     CaffeParserTest(MultipleNetworksCifar10 "${MultipleNetworksCifar10_SRC}")
59
60     set(CaffeResNet-Armnn_sources
61         CaffeResNet-Armnn/CaffeResNet-Armnn.cpp
62         CaffePreprocessor.hpp
63         CaffePreprocessor.cpp)
64     CaffeParserTest(CaffeResNet-Armnn "${CaffeResNet-Armnn_sources}")
65
66     set(CaffeVGG-Armnn_sources
67         CaffeVGG-Armnn/CaffeVGG-Armnn.cpp
68         CaffePreprocessor.hpp
69         CaffePreprocessor.cpp)
70     CaffeParserTest(CaffeVGG-Armnn "${CaffeVGG-Armnn_sources}")
71
72     set(CaffeInception_BN-Armnn_sources
73         CaffeInception_BN-Armnn/CaffeInception_BN-Armnn.cpp
74         CaffePreprocessor.hpp
75         CaffePreprocessor.cpp)
76     CaffeParserTest(CaffeInception_BN-Armnn "${CaffeInception_BN-Armnn_sources}")
77
78     set(CaffeYolo-Armnn_sources
79         CaffeYolo-Armnn/CaffeYolo-Armnn.cpp
80         YoloDatabase.hpp
81         YoloDatabase.cpp
82         YoloInferenceTest.hpp)
83     CaffeParserTest(CaffeYolo-Armnn "${CaffeYolo-Armnn_sources}")
84 endif()
85
86 if(BUILD_TF_PARSER)
87     macro(TfParserTest testName sources)
88         add_executable_ex(${testName} ${sources})
89         target_include_directories(${testName} PRIVATE ../src/armnnUtils)
90         target_include_directories(${testName} PRIVATE ../src/backends)
91
92         target_link_libraries(${testName} inferenceTest)
93         target_link_libraries(${testName} armnnTfParser)
94         target_link_libraries(${testName} armnn)
95         target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
96         target_link_libraries(${testName}
97             ${Boost_SYSTEM_LIBRARY}
98             ${Boost_PROGRAM_OPTIONS_LIBRARY})
99         addDllCopyCommands(${testName})
100     endmacro()
101
102     set(TfMnist-Armnn_sources
103         TfMnist-Armnn/TfMnist-Armnn.cpp
104         MnistDatabase.hpp
105         MnistDatabase.cpp)
106     TfParserTest(TfMnist-Armnn "${TfMnist-Armnn_sources}")
107
108     set(TfCifar10-Armnn_sources
109         TfCifar10-Armnn/TfCifar10-Armnn.cpp
110         Cifar10Database.hpp
111         Cifar10Database.cpp)
112     TfParserTest(TfCifar10-Armnn "${TfCifar10-Armnn_sources}")
113
114     set(TfMobileNet-Armnn_sources
115         TfMobileNet-Armnn/TfMobileNet-Armnn.cpp
116         ImagePreprocessor.hpp
117         ImagePreprocessor.cpp)
118     TfParserTest(TfMobileNet-Armnn "${TfMobileNet-Armnn_sources}")
119
120     set(TfInceptionV3-Armnn_sources
121         TfInceptionV3-Armnn/TfInceptionV3-Armnn.cpp
122         ImagePreprocessor.hpp
123         ImagePreprocessor.cpp)
124     TfParserTest(TfInceptionV3-Armnn "${TfInceptionV3-Armnn_sources}")
125
126     set(TfResNext-Armnn_sources
127         TfResNext_Quantized-Armnn/TfResNext_Quantized-Armnn.cpp
128         CaffePreprocessor.hpp
129         CaffePreprocessor.cpp)
130     TfParserTest(TfResNext-Armnn "${TfResNext-Armnn_sources}")
131 endif()
132
133 if (BUILD_TF_LITE_PARSER)
134     macro(TfLiteParserTest testName sources)
135         add_executable_ex(${testName} ${sources})
136         target_include_directories(${testName} PRIVATE ../src/armnnUtils)
137         target_include_directories(${testName} PRIVATE ../src/backends)
138
139         target_link_libraries(${testName} inferenceTest)
140         target_link_libraries(${testName} armnnTfLiteParser)
141         target_link_libraries(${testName} armnn)
142         target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
143         target_link_libraries(${testName}
144             ${Boost_SYSTEM_LIBRARY}
145             ${Boost_PROGRAM_OPTIONS_LIBRARY})
146         addDllCopyCommands(${testName})
147     endmacro()
148
149     set(TfLiteMobilenetQuantized-Armnn_sources
150         TfLiteMobilenetQuantized-Armnn/TfLiteMobilenetQuantized-Armnn.cpp
151         ImagePreprocessor.hpp
152         ImagePreprocessor.cpp)
153     TfLiteParserTest(TfLiteMobilenetQuantized-Armnn "${TfLiteMobilenetQuantized-Armnn_sources}")
154
155     set(TfLiteMobileNetSsd-Armnn_sources
156         TfLiteMobileNetSsd-Armnn/TfLiteMobileNetSsd-Armnn.cpp
157         MobileNetSsdDatabase.hpp
158         MobileNetSsdInferenceTest.hpp
159         ObjectDetectionCommon.hpp)
160     TfLiteParserTest(TfLiteMobileNetSsd-Armnn "${TfLiteMobileNetSsd-Armnn_sources}")
161
162     set(TfLiteMobilenetV2Quantized-Armnn_sources
163         TfLiteMobilenetV2Quantized-Armnn/TfLiteMobilenetV2Quantized-Armnn.cpp
164         ImagePreprocessor.hpp
165         ImagePreprocessor.cpp)
166     TfLiteParserTest(TfLiteMobilenetV2Quantized-Armnn "${TfLiteMobilenetV2Quantized-Armnn_sources}")
167
168     set(TfLiteVGG16Quantized-Armnn_sources
169         TfLiteVGG16Quantized-Armnn/TfLiteVGG16Quantized-Armnn.cpp
170         ImagePreprocessor.hpp
171         ImagePreprocessor.cpp)
172     TfLiteParserTest(TfLiteVGG16Quantized-Armnn "${TfLiteVGG16Quantized-Armnn_sources}")
173
174     set(TfLiteMobileNetQuantizedSoftmax-Armnn_sources
175         TfLiteMobileNetQuantizedSoftmax-Armnn/TfLiteMobileNetQuantizedSoftmax-Armnn.cpp
176         ImagePreprocessor.hpp
177         ImagePreprocessor.cpp)
178     TfLiteParserTest(TfLiteMobileNetQuantizedSoftmax-Armnn "${TfLiteMobileNetQuantizedSoftmax-Armnn_sources}")
179
180     set(TfLiteInceptionV3Quantized-Armnn_sources
181         TfLiteInceptionV3Quantized-Armnn/TfLiteInceptionV3Quantized-Armnn.cpp
182         ImagePreprocessor.hpp
183         ImagePreprocessor.cpp)
184     TfLiteParserTest(TfLiteInceptionV3Quantized-Armnn "${TfLiteInceptionV3Quantized-Armnn_sources}")
185
186     set(TfLiteInceptionV4Quantized-Armnn_sources
187         TfLiteInceptionV4Quantized-Armnn/TfLiteInceptionV4Quantized-Armnn.cpp
188         ImagePreprocessor.hpp
189         ImagePreprocessor.cpp)
190     TfLiteParserTest(TfLiteInceptionV4Quantized-Armnn "${TfLiteInceptionV4Quantized-Armnn_sources}")
191
192     set(TfLiteResNetV2-Armnn_sources
193         TfLiteResNetV2-Armnn/TfLiteResNetV2-Armnn.cpp
194         ImagePreprocessor.hpp
195         ImagePreprocessor.cpp)
196     TfLiteParserTest(TfLiteResNetV2-Armnn "${TfLiteResNetV2-Armnn_sources}")
197
198     set(TfLiteResNetV2-50-Quantized-Armnn_sources
199         TfLiteResNetV2-50-Quantized-Armnn/TfLiteResNetV2-50-Quantized-Armnn.cpp
200         ImagePreprocessor.hpp
201         ImagePreprocessor.cpp)
202     TfLiteParserTest(TfLiteResNetV2-50-Quantized-Armnn "${TfLiteResNetV2-50-Quantized-Armnn_sources}")
203
204     set(TfLiteMnasNet-Armnn_sources
205         TfLiteMnasNet-Armnn/TfLiteMnasNet-Armnn.cpp
206         ImagePreprocessor.hpp
207         ImagePreprocessor.cpp)
208     TfLiteParserTest(TfLiteMnasNet-Armnn "${TfLiteMnasNet-Armnn_sources}")
209
210
211     set(TfLiteYoloV3Big-Armnn_sources
212         TfLiteYoloV3Big-Armnn/NMS.cpp
213         TfLiteYoloV3Big-Armnn/NMS.hpp
214         TfLiteYoloV3Big-Armnn/TfLiteYoloV3Big-Armnn.cpp
215         ImagePreprocessor.hpp
216         ImagePreprocessor.cpp)
217     TfLiteParserTest(TfLiteYoloV3Big-Armnn "${TfLiteYoloV3Big-Armnn_sources}")
218 endif()
219
220 if (BUILD_ONNX_PARSER)
221     macro(OnnxParserTest testName sources)
222         add_executable_ex(${testName} ${sources})
223         target_include_directories(${testName} PRIVATE ../src/armnnUtils)
224         target_include_directories(${testName} PRIVATE ../src/backends)
225
226         target_link_libraries(${testName} inferenceTest)
227         target_link_libraries(${testName} armnnOnnxParser)
228         target_link_libraries(${testName} armnn)
229         target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
230         target_link_libraries(${testName}
231             ${Boost_SYSTEM_LIBRARY}
232             ${Boost_PROGRAM_OPTIONS_LIBRARY})
233         addDllCopyCommands(${testName})
234     endmacro()
235
236     set(OnnxMnist-Armnn_sources
237         OnnxMnist-Armnn/OnnxMnist-Armnn.cpp
238         MnistDatabase.hpp
239         MnistDatabase.cpp)
240     OnnxParserTest(OnnxMnist-Armnn "${OnnxMnist-Armnn_sources}")
241
242     set(OnnxMobileNet-Armnn_sources
243         OnnxMobileNet-Armnn/OnnxMobileNet-Armnn.cpp
244         ImagePreprocessor.hpp
245         ImagePreprocessor.cpp)
246     OnnxParserTest(OnnxMobileNet-Armnn "${OnnxMobileNet-Armnn_sources}")
247 endif()
248
249 if (BUILD_ARMNN_SERIALIZER OR BUILD_CAFFE_PARSER OR BUILD_TF_PARSER OR BUILD_TF_LITE_PARSER OR BUILD_ONNX_PARSER)
250     set(ExecuteNetwork_sources
251         ExecuteNetwork/ExecuteNetwork.cpp)
252
253     add_executable_ex(ExecuteNetwork ${ExecuteNetwork_sources})
254     target_include_directories(ExecuteNetwork PRIVATE ../src/armnn)
255     target_include_directories(ExecuteNetwork PRIVATE ../src/armnnUtils)
256     target_include_directories(ExecuteNetwork PRIVATE ../src/backends)
257
258     if (BUILD_ARMNN_SERIALIZER)
259         target_link_libraries(ExecuteNetwork armnnSerializer)
260     endif()
261     if (BUILD_CAFFE_PARSER)
262         target_link_libraries(ExecuteNetwork armnnCaffeParser)
263     endif()
264     if (BUILD_TF_PARSER)
265         target_link_libraries(ExecuteNetwork armnnTfParser)
266     endif()
267
268     if (BUILD_TF_LITE_PARSER)
269         target_link_libraries(ExecuteNetwork armnnTfLiteParser)
270     endif()
271     if (BUILD_ONNX_PARSER)
272             target_link_libraries(ExecuteNetwork armnnOnnxParser)
273     endif()
274
275     target_link_libraries(ExecuteNetwork armnn)
276     target_link_libraries(ExecuteNetwork ${CMAKE_THREAD_LIBS_INIT})
277     target_link_libraries(ExecuteNetwork
278         ${Boost_SYSTEM_LIBRARY}
279         ${Boost_PROGRAM_OPTIONS_LIBRARY})
280     addDllCopyCommands(ExecuteNetwork)
281 endif()
282
283 if(BUILD_ACCURACY_TOOL)
284     macro(AccuracyTool executorName)
285         target_link_libraries(${executorName} ${CMAKE_THREAD_LIBS_INIT})
286         if (BUILD_ARMNN_SERIALIZER)
287             target_link_libraries(${executorName} armnnSerializer)
288         endif()
289         if (BUILD_CAFFE_PARSER)
290             target_link_libraries(${executorName} armnnCaffeParser)
291         endif()
292         if (BUILD_TF_PARSER)
293             target_link_libraries(${executorName} armnnTfParser)
294         endif()
295         if (BUILD_TF_LITE_PARSER)
296             target_link_libraries(${executorName} armnnTfLiteParser)
297         endif()
298         if (BUILD_ONNX_PARSER)
299             target_link_libraries(${executorName} armnnOnnxParser)
300         endif()
301         target_link_libraries(${executorName}
302                 ${Boost_SYSTEM_LIBRARY}
303                 ${Boost_PROGRAM_OPTIONS_LIBRARY})
304         addDllCopyCommands(${executorName})
305     endmacro()
306
307     set(ModelAccuracyTool-Armnn_sources
308             ModelAccuracyTool-Armnn/ModelAccuracyTool-Armnn.cpp)
309
310     add_executable_ex(ModelAccuracyTool ${ModelAccuracyTool-Armnn_sources})
311     target_include_directories(ModelAccuracyTool PRIVATE ../src/armnn)
312     target_include_directories(ModelAccuracyTool PRIVATE ../src/armnnUtils)
313     target_include_directories(ModelAccuracyTool PRIVATE ../src/backends)
314     target_link_libraries(ModelAccuracyTool inferenceTest)
315     target_link_libraries(ModelAccuracyTool armnn)
316     target_link_libraries(ModelAccuracyTool armnnSerializer)
317     AccuracyTool(ModelAccuracyTool)
318 endif()
319
320 if(BUILD_ARMNN_QUANTIZER)
321     macro(ImageTensorExecutor executorName)
322         target_link_libraries(${executorName} ${CMAKE_THREAD_LIBS_INIT})
323         target_link_libraries(${executorName}
324                 ${Boost_SYSTEM_LIBRARY}
325                 ${Boost_PROGRAM_OPTIONS_LIBRARY})
326         addDllCopyCommands(${executorName})
327     endmacro()
328
329     set(ImageTensorGenerator_sources
330             InferenceTestImage.hpp
331             InferenceTestImage.cpp
332             ImageTensorGenerator/ImageTensorGenerator.cpp)
333
334     add_executable_ex(ImageTensorGenerator ${ImageTensorGenerator_sources})
335     target_include_directories(ImageTensorGenerator PRIVATE ../src/armnn)
336     target_include_directories(ImageTensorGenerator PRIVATE ../src/armnnUtils)
337
338     target_link_libraries(ImageTensorGenerator armnn)
339     ImageTensorExecutor(ImageTensorGenerator)
340
341     set(ImageCSVFileGenerator_sources
342             ImageCSVFileGenerator/ImageCSVFileGenerator.cpp)
343
344     add_executable_ex(ImageCSVFileGenerator ${ImageCSVFileGenerator_sources})
345     target_include_directories(ImageCSVFileGenerator PRIVATE ../src/armnnUtils)
346     ImageTensorExecutor(ImageCSVFileGenerator)
347 endif()