xref: /aosp_15_r20/external/armnn/src/backends/backendsCommon/test/CMakeLists.txt (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1#
2# Copyright © 2017-2023 Arm Ltd and Contributors. All rights reserved.
3# SPDX-License-Identifier: MIT
4#
5
6list(APPEND armnnBackendsCommonUnitTests_sources
7    ActivationFixture.hpp
8    ActivationEndToEndTestImpl.hpp
9    ArgMinMaxEndToEndTestImpl.hpp
10    BackendIdTests.cpp
11    BackendProfilingTests.cpp
12    BackendRegistryTests.cpp
13    ChannelShuffleEndToEndTestImpl.hpp
14    ComparisonEndToEndTestImpl.hpp
15    CompatibilityTests.cpp
16    ConcatEndToEndTestImpl.hpp
17    Convolution2dEndToEndTestImpl.hpp
18    Convolution3dEndToEndTestImpl.hpp
19    DefaultAsyncExecuteTest.cpp
20    DepthToSpaceEndToEndTestImpl.hpp
21    DepthwiseConvolution2dEndToEndTests.hpp
22    DequantizeEndToEndTestImpl.hpp
23    DetectionPostProcessEndToEndTestImpl.hpp
24    DynamicBackendTests.cpp
25    DynamicBackendTests.hpp
26    ElementwiseBinaryEndToEndTestImpl.hpp
27    ElementwiseUnaryEndToEndTestImpl.hpp
28    EndToEndTestImpl.hpp
29    FillEndToEndTestImpl.hpp
30    FullyConnectedEndToEndTestImpl.hpp
31    GatherEndToEndTestImpl.hpp
32    GatherNdEndToEndTestImpl.hpp
33    InstanceNormalizationEndToEndTestImpl.cpp
34    InstanceNormalizationEndToEndTestImpl.hpp
35    IsLayerSupportedTestImpl.hpp
36    JsonPrinterTestImpl.cpp
37    JsonPrinterTestImpl.hpp
38    LayerReleaseConstantDataTest.cpp
39    LayerTests.hpp
40    LogSoftmaxEndToEndTestImpl.cpp
41    LogSoftmaxEndToEndTestImpl.hpp
42    MemoryManagerTests.cpp
43    MockBackendId.hpp
44    MultiplicationEndToEndTestImpl.hpp
45    OptimizeSubgraphViewTests.cpp
46    OptimizationViewsTests.cpp
47    PreluEndToEndTestImpl.hpp
48    QLstmEndToEndTestImpl.cpp
49    QLstmEndToEndTestImpl.hpp
50    QuantizedLstmEndToEndTestImpl.cpp
51    QuantizedLstmEndToEndTestImpl.hpp
52    RankEndToEndTestImpl.hpp
53    ReduceEndToEndTestImpl.hpp
54    ReshapeEndToEndTestImpl.hpp
55    ResizeEndToEndTestImpl.hpp
56    RuntimeTestImpl.hpp
57    SliceEndToEndTestImpl.hpp
58    SpaceToDepthEndToEndTestImpl.cpp
59    SpaceToDepthEndToEndTestImpl.hpp
60    SplitterEndToEndTestImpl.hpp
61    StridedSliceAsyncEndToEndTest.hpp
62    SubtractionEndToEndTestImpl.hpp
63    TransposeEndToEndTestImpl.hpp
64    TensorCopyUtils.hpp
65    WorkloadFactoryHelper.hpp
66    layerTests/AbsTestImpl.cpp
67    layerTests/AbsTestImpl.hpp
68    layerTests/ActivationTestImpl.cpp
69    layerTests/ActivationTestImpl.hpp
70    layerTests/AdditionTestImpl.cpp
71    layerTests/AdditionTestImpl.hpp
72    layerTests/ArgMinMaxTestImpl.cpp
73    layerTests/ArgMinMaxTestImpl.hpp
74    layerTests/BatchMatMulTestImpl.cpp
75    layerTests/BatchMatMulTestImpl.hpp
76    layerTests/BatchNormalizationTestImpl.cpp
77    layerTests/BatchNormalizationTestImpl.hpp
78    layerTests/BatchToSpaceNdTestImpl.hpp
79    layerTests/CastTestImpl.cpp
80    layerTests/CastTestImpl.hpp
81    layerTests/ChannelShuffleTestImpl.cpp
82    layerTests/ChannelShuffleTestImpl.hpp
83    layerTests/ComparisonTestImpl.cpp
84    layerTests/ComparisonTestImpl.hpp
85    layerTests/ConcatTestImpl.cpp
86    layerTests/ConcatTestImpl.hpp
87    layerTests/ConstantTestImpl.cpp
88    layerTests/ConstantTestImpl.hpp
89    layerTests/Conv2dTestImpl.cpp
90    layerTests/Conv2dTestImpl.hpp
91    layerTests/Conv3dTestImpl.cpp
92    layerTests/Conv3dTestImpl.hpp
93    layerTests/ConvertFp16ToFp32TestImpl.cpp
94    layerTests/ConvertFp16ToFp32TestImpl.hpp
95    layerTests/ConvertFp32ToFp16TestImpl.cpp
96    layerTests/ConvertFp32ToFp16TestImpl.hpp
97    layerTests/DebugTestImpl.cpp
98    layerTests/DebugTestImpl.hpp
99    layerTests/DepthToSpaceTestImpl.cpp
100    layerTests/DepthToSpaceTestImpl.hpp
101    layerTests/DequantizeTestImpl.cpp
102    layerTests/DequantizeTestImpl.hpp
103    layerTests/DetectionPostProcessTestImpl.hpp
104    layerTests/DivisionTestImpl.cpp
105    layerTests/DivisionTestImpl.hpp
106    layerTests/ElementwiseTestImpl.hpp
107    layerTests/ElementwiseUnaryTestImpl.cpp
108    layerTests/ElementwiseUnaryTestImpl.hpp
109    layerTests/ExpTestImpl.cpp
110    layerTests/ExpTestImpl.hpp
111    layerTests/FakeQuantizationTestImpl.cpp
112    layerTests/FakeQuantizationTestImpl.hpp
113    layerTests/FillTestImpl.cpp
114    layerTests/FillTestImpl.hpp
115    layerTests/FloorTestImpl.cpp
116    layerTests/FloorTestImpl.hpp
117    layerTests/FullyConnectedTestImpl.cpp
118    layerTests/FullyConnectedTestImpl.hpp
119    layerTests/GatherNdTestImpl.cpp
120    layerTests/GatherNdTestImpl.hpp
121    layerTests/GatherTestImpl.cpp
122    layerTests/GatherTestImpl.hpp
123    layerTests/InstanceNormalizationTestImpl.cpp
124    layerTests/InstanceNormalizationTestImpl.hpp
125    layerTests/L2NormalizationTestImpl.cpp
126    layerTests/L2NormalizationTestImpl.hpp
127    layerTests/LogTestImpl.cpp
128    layerTests/LogTestImpl.hpp
129    layerTests/LogicalTestImpl.cpp
130    layerTests/LogicalTestImpl.hpp
131    layerTests/LogSoftmaxTestImpl.cpp
132    layerTests/LogSoftmaxTestImpl.hpp
133    layerTests/LstmTestImpl.cpp
134    layerTests/LstmTestImpl.hpp
135    layerTests/MaximumTestImpl.cpp
136    layerTests/MaximumTestImpl.hpp
137    layerTests/MeanTestImpl.hpp
138    layerTests/MinimumTestImpl.cpp
139    layerTests/MinimumTestImpl.hpp
140    layerTests/MirrorPadTestImpl.cpp
141    layerTests/MirrorPadTestImpl.hpp
142    layerTests/MultiplicationTestImpl.cpp
143    layerTests/MultiplicationTestImpl.hpp
144    layerTests/NegTestImpl.cpp
145    layerTests/NegTestImpl.hpp
146    layerTests/NormalizationTestImpl.cpp
147    layerTests/NormalizationTestImpl.hpp
148    layerTests/PadTestImpl.cpp
149    layerTests/PadTestImpl.hpp
150    layerTests/PermuteTestImpl.hpp
151    layerTests/Pooling2dTestImpl.cpp
152    layerTests/Pooling2dTestImpl.hpp
153    layerTests/Pooling3dTestImpl.cpp
154    layerTests/Pooling3dTestImpl.hpp
155    layerTests/PreluTestImpl.hpp
156    layerTests/QuantizeTestImpl.cpp
157    layerTests/QuantizeTestImpl.hpp
158    layerTests/RankTestImpl.cpp
159    layerTests/RankTestImpl.hpp
160    layerTests/ReductionTestImpl.cpp
161    layerTests/ReductionTestImpl.hpp
162    layerTests/ReduceProdTestImpl.cpp
163    layerTests/ReduceProdTestImpl.hpp
164    layerTests/ReduceSumTestImpl.cpp
165    layerTests/ReduceSumTestImpl.hpp
166    layerTests/ReshapeTestImpl.cpp
167    layerTests/ReshapeTestImpl.hpp
168    layerTests/ResizeTestImpl.cpp
169    layerTests/ResizeTestImpl.hpp
170    layerTests/RsqrtTestImpl.cpp
171    layerTests/RsqrtTestImpl.hpp
172    layerTests/SinTestImpl.cpp
173    layerTests/SinTestImpl.hpp
174    layerTests/ShapeTestImpl.cpp
175    layerTests/ShapeTestImpl.cpp
176    layerTests/SliceTestImpl.cpp
177    layerTests/SliceTestImpl.hpp
178    layerTests/SoftmaxTestImpl.cpp
179    layerTests/SoftmaxTestImpl.hpp
180    layerTests/SpaceToBatchNdTestImpl.cpp
181    layerTests/SpaceToBatchNdTestImpl.hpp
182    layerTests/SpaceToDepthTestImpl.cpp
183    layerTests/SpaceToDepthTestImpl.hpp
184    layerTests/SplitterTestImpl.cpp
185    layerTests/SplitterTestImpl.hpp
186    layerTests/SqrtTestImpl.cpp
187    layerTests/SqrtTestImpl.hpp
188    layerTests/StackTestImpl.cpp
189    layerTests/StackTestImpl.hpp
190    layerTests/StridedSliceTestImpl.cpp
191    layerTests/StridedSliceTestImpl.hpp
192    layerTests/SubtractionTestImpl.cpp
193    layerTests/SubtractionTestImpl.hpp
194    layerTests/TransposeConvolution2dTestImpl.cpp
195    layerTests/TransposeConvolution2dTestImpl.hpp
196    layerTests/UnidirectionalSequenceLstmTestImpl.cpp
197    layerTests/UnidirectionalSequenceLstmTestImpl.hpp
198)
199
200if(ARMCOMPUTENEON OR ARMNNREF)
201    list(APPEND armnnBackendsCommonUnitTests_sources
202        CustomMemoryOptimizerStrategyTests.cpp
203        )
204endif()
205
206if (ARMNNREF)
207    list(APPEND armnnBackendsCommonUnitTests_sources
208        mockBackend/MockImportBackend.cpp
209        mockBackend/MockImportBackend.hpp
210        mockBackend/MockImportLayerSupport.hpp
211        OptimizedNetworkTests.cpp
212        WorkloadDataValidation.cpp
213        )
214endif()
215
216add_library(armnnBackendsCommonUnitTests OBJECT ${armnnBackendsCommonUnitTests_sources})
217target_include_directories(armnnBackendsCommonUnitTests PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
218target_include_directories(armnnBackendsCommonUnitTests PRIVATE ${PROJECT_SOURCE_DIR}/src/armnnUtils)
219target_include_directories(armnnBackendsCommonUnitTests PRIVATE ${PROJECT_SOURCE_DIR}/src/armnnTestUtils)
220target_include_directories(armnnBackendsCommonUnitTests PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
221target_include_directories(armnnBackendsCommonUnitTests PRIVATE ${PROJECT_SOURCE_DIR}/src/profiling)
222target_include_directories(armnnBackendsCommonUnitTests PRIVATE ${PROJECT_SOURCE_DIR}/profiling/common/include)
223target_include_directories(armnnBackendsCommonUnitTests PRIVATE ${PROJECT_SOURCE_DIR}/profiling/client/include)
224target_include_directories(armnnBackendsCommonUnitTests PRIVATE ${PROJECT_SOURCE_DIR}/third-party)
225
226# Dummy shared object for testing.
227# This is a simple library used to test the utility functions that will be used to handle the shared objects.
228
229list(APPEND testSharedObject_sources
230    TestSharedObject.cpp
231    TestSharedObject.hpp
232)
233
234add_library_ex(TestSharedObject MODULE ${testSharedObject_sources})
235set_target_properties(TestSharedObject PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/testSharedObject)
236file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/testSharedObject/libNoSharedObject.txt "This is not a shared object")
237
238# Dummy dynamic backends for testing.
239# Both a valid and a number of invalid dummy dynamic backends (covering various use cases) share the
240# same source code. The various test cases are put together in the code using compiler directives.
241
242list(APPEND testDynamicBackend_sources
243    TestDynamicBackend.cpp
244    TestDynamicBackend.hpp
245)
246
247add_library_ex(ValidTestDynamicBackend MODULE ${testDynamicBackend_sources})
248target_compile_definitions(ValidTestDynamicBackend PRIVATE -DVALID_TEST_DYNAMIC_BACKEND_1)
249target_include_directories(ValidTestDynamicBackend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
250target_include_directories(ValidTestDynamicBackend PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
251target_include_directories(ValidTestDynamicBackend PRIVATE ${PROJECT_SOURCE_DIR}/src/profiling)
252target_include_directories(ValidTestDynamicBackend PRIVATE ${PROJECT_SOURCE_DIR}/profiling/common/include)
253target_include_directories(ValidTestDynamicBackend PRIVATE ${PROJECT_SOURCE_DIR}/profiling/client/include)
254target_link_libraries(ValidTestDynamicBackend armnn)
255set_target_properties(ValidTestDynamicBackend PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/testDynamicBackend)
256
257add_library_ex(InvalidTestDynamicBackend1 MODULE ${testDynamicBackend_sources})
258target_compile_definitions(InvalidTestDynamicBackend1 PRIVATE -DINVALID_TEST_DYNAMIC_BACKEND_1)
259target_include_directories(InvalidTestDynamicBackend1 PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
260target_include_directories(InvalidTestDynamicBackend1 PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
261target_include_directories(InvalidTestDynamicBackend1 PRIVATE ${PROJECT_SOURCE_DIR}/src/profiling)
262target_include_directories(InvalidTestDynamicBackend1 PRIVATE ${PROJECT_SOURCE_DIR}/profiling/common/include)
263target_include_directories(InvalidTestDynamicBackend1 PRIVATE ${PROJECT_SOURCE_DIR}/profiling/client/include)
264target_link_libraries(InvalidTestDynamicBackend1 armnn)
265set_target_properties(InvalidTestDynamicBackend1 PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/testDynamicBackend)
266
267add_library_ex(InvalidTestDynamicBackend2 MODULE ${testDynamicBackend_sources})
268target_compile_definitions(InvalidTestDynamicBackend2 PRIVATE -DINVALID_TEST_DYNAMIC_BACKEND_2)
269target_include_directories(InvalidTestDynamicBackend2 PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
270target_include_directories(InvalidTestDynamicBackend2 PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
271target_include_directories(InvalidTestDynamicBackend2 PRIVATE ${PROJECT_SOURCE_DIR}/src/profiling)
272target_include_directories(InvalidTestDynamicBackend2 PRIVATE ${PROJECT_SOURCE_DIR}/profiling/common/include)
273target_include_directories(InvalidTestDynamicBackend2 PRIVATE ${PROJECT_SOURCE_DIR}/profiling/client/include)
274target_link_libraries(InvalidTestDynamicBackend2 armnn)
275set_target_properties(InvalidTestDynamicBackend2 PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/testDynamicBackend)
276
277add_library_ex(InvalidTestDynamicBackend3 MODULE ${testDynamicBackend_sources})
278target_compile_definitions(InvalidTestDynamicBackend3 PRIVATE -DINVALID_TEST_DYNAMIC_BACKEND_3)
279target_include_directories(InvalidTestDynamicBackend3 PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
280target_include_directories(InvalidTestDynamicBackend3 PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
281target_include_directories(InvalidTestDynamicBackend3 PRIVATE ${PROJECT_SOURCE_DIR}/src/profiling)
282target_include_directories(InvalidTestDynamicBackend3 PRIVATE ${PROJECT_SOURCE_DIR}/profiling/common/include)
283target_include_directories(InvalidTestDynamicBackend3 PRIVATE ${PROJECT_SOURCE_DIR}/profiling/client/include)
284target_link_libraries(InvalidTestDynamicBackend3 armnn)
285set_target_properties(InvalidTestDynamicBackend3 PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/testDynamicBackend)
286
287add_library_ex(InvalidTestDynamicBackend4 MODULE ${testDynamicBackend_sources})
288target_compile_definitions(InvalidTestDynamicBackend4 PRIVATE -DINVALID_TEST_DYNAMIC_BACKEND_4)
289target_include_directories(InvalidTestDynamicBackend4 PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
290target_include_directories(InvalidTestDynamicBackend4 PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
291target_include_directories(InvalidTestDynamicBackend4 PRIVATE ${PROJECT_SOURCE_DIR}/src/profiling)
292target_include_directories(InvalidTestDynamicBackend4 PRIVATE ${PROJECT_SOURCE_DIR}/profiling/common/include)
293target_include_directories(InvalidTestDynamicBackend4 PRIVATE ${PROJECT_SOURCE_DIR}/profiling/client/include)
294target_link_libraries(InvalidTestDynamicBackend4 armnn)
295set_target_properties(InvalidTestDynamicBackend4 PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/testDynamicBackend)
296
297add_library_ex(InvalidTestDynamicBackend5 MODULE ${testDynamicBackend_sources})
298target_compile_definitions(InvalidTestDynamicBackend5 PRIVATE -DINVALID_TEST_DYNAMIC_BACKEND_5)
299target_include_directories(InvalidTestDynamicBackend5 PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
300target_include_directories(InvalidTestDynamicBackend5 PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
301target_include_directories(InvalidTestDynamicBackend5 PRIVATE ${PROJECT_SOURCE_DIR}/src/profiling)
302target_include_directories(InvalidTestDynamicBackend5 PRIVATE ${PROJECT_SOURCE_DIR}/profiling/common/include)
303target_include_directories(InvalidTestDynamicBackend5 PRIVATE ${PROJECT_SOURCE_DIR}/profiling/client/include)
304target_link_libraries(InvalidTestDynamicBackend5 armnn)
305set_target_properties(InvalidTestDynamicBackend5 PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/testDynamicBackend)
306
307add_library_ex(InvalidTestDynamicBackend6 MODULE ${testDynamicBackend_sources})
308target_compile_definitions(InvalidTestDynamicBackend6 PRIVATE -DINVALID_TEST_DYNAMIC_BACKEND_6)
309target_include_directories(InvalidTestDynamicBackend6 PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
310target_include_directories(InvalidTestDynamicBackend6 PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
311target_include_directories(InvalidTestDynamicBackend6 PRIVATE ${PROJECT_SOURCE_DIR}/src/profiling)
312target_include_directories(InvalidTestDynamicBackend6 PRIVATE ${PROJECT_SOURCE_DIR}/profiling/common/include)
313target_include_directories(InvalidTestDynamicBackend6 PRIVATE ${PROJECT_SOURCE_DIR}/profiling/client/include)
314target_link_libraries(InvalidTestDynamicBackend6 armnn)
315set_target_properties(InvalidTestDynamicBackend6 PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/testDynamicBackend)
316
317add_library_ex(InvalidTestDynamicBackend7 MODULE ${testDynamicBackend_sources})
318target_compile_definitions(InvalidTestDynamicBackend7 PRIVATE -DINVALID_TEST_DYNAMIC_BACKEND_7)
319target_include_directories(InvalidTestDynamicBackend7 PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
320target_include_directories(InvalidTestDynamicBackend7 PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
321target_include_directories(InvalidTestDynamicBackend7 PRIVATE ${PROJECT_SOURCE_DIR}/src/profiling)
322target_include_directories(InvalidTestDynamicBackend7 PRIVATE ${PROJECT_SOURCE_DIR}/profiling/common/include)
323target_include_directories(InvalidTestDynamicBackend6 PRIVATE ${PROJECT_SOURCE_DIR}/profiling/client/include)
324target_link_libraries(InvalidTestDynamicBackend7 armnn)
325set_target_properties(InvalidTestDynamicBackend7 PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/testDynamicBackend)
326
327# Dummy files and directories for testing the dynamic backend file parsing.
328
329file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm_GpuAcc_backend.so          "Test file for dynamic backend file parsing")
330file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm_GpuAcc_backend.so.1        "Test file for dynamic backend file parsing")
331file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm_GpuAcc_backend.so.1.2      "Test file for dynamic backend file parsing")
332file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm_GpuAcc_backend.so.1.2.3    "Test file for dynamic backend file parsing")
333file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm_GpuAcc_backend.so.10.1.27  "Test file for dynamic backend file parsing")
334file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm_GpuAcc_backend.so.10.1.33. "Test file for dynamic backend file parsing")
335file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm_GpuAcc_backend.so.3.4..5   "Test file for dynamic backend file parsing")
336file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm_GpuAcc_backend.so.1,1.1    "Test file for dynamic backend file parsing")
337
338file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm123_GpuAcc_backend.so       "Test file for dynamic backend file parsing")
339file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm_GpuAcc456_backend.so       "Test file for dynamic backend file parsing")
340file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm%Co_GpuAcc_backend.so       "Test file for dynamic backend file parsing")
341file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm_Gpu.Acc_backend.so         "Test file for dynamic backend file parsing")
342
343file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/GpuAcc_backend.so              "Test file for dynamic backend file parsing")
344file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/_GpuAcc_backend.so             "Test file for dynamic backend file parsing")
345file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm__backend.so                "Test file for dynamic backend file parsing")
346file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm_GpuAcc.so                  "Test file for dynamic backend file parsing")
347file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/__backend.so                   "Test file for dynamic backend file parsing")
348file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/__.so                          "Test file for dynamic backend file parsing")
349
350file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm_GpuAcc_backend             "Test file for dynamic backend file parsing")
351file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm_GpuAcc_backend_v1.2.so     "Test file for dynamic backend file parsing")
352
353file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath2/Arm_CpuAcc_backend.so          "Test file for dynamic backend file parsing")
354add_custom_target(link_dummy_dynamic_backend ALL
355                  COMMAND ${CMAKE_COMMAND} -E create_symlink Arm_CpuAcc_backend.so backendsTestPath2/Arm_CpuAcc_backend.so.1
356                  COMMAND ${CMAKE_COMMAND} -E create_symlink Arm_CpuAcc_backend.so.1 backendsTestPath2/Arm_CpuAcc_backend.so.1.2
357                  COMMAND ${CMAKE_COMMAND} -E create_symlink Arm_CpuAcc_backend.so.1.2 backendsTestPath2/Arm_CpuAcc_backend.so.1.2.3
358                  COMMAND ${CMAKE_COMMAND} -E create_symlink nothing backendsTestPath2/Arm_no_backend.so)
359file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath2/Arm_GpuAcc_backend.so          "Test file for dynamic backend file parsing")
360
361file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath3)
362
363# Dummy dynamic backends for testing.
364# These shared objects are used to test the creation of dynamic backend instances in ArmNN.
365
366add_library_ex(Arm_TestValid2_backend MODULE ${testDynamicBackend_sources})
367target_compile_definitions(Arm_TestValid2_backend PRIVATE -DVALID_TEST_DYNAMIC_BACKEND_2)
368target_include_directories(Arm_TestValid2_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
369target_include_directories(Arm_TestValid2_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
370target_include_directories(Arm_TestValid2_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/profiling)
371target_include_directories(Arm_TestValid2_backend PRIVATE ${PROJECT_SOURCE_DIR}/profiling/common/include)
372target_include_directories(Arm_TestValid2_backend PRIVATE ${PROJECT_SOURCE_DIR}/profiling/client/include)
373target_link_libraries(Arm_TestValid2_backend armnn)
374set_target_properties(Arm_TestValid2_backend PROPERTIES PREFIX "")
375set_target_properties(Arm_TestValid2_backend PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath5)
376add_custom_command(TARGET Arm_TestValid2_backend POST_BUILD
377                   COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:Arm_TestValid2_backend> ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath6)
378
379add_library_ex(Arm_TestValid3_backend MODULE ${testDynamicBackend_sources})
380target_compile_definitions(Arm_TestValid3_backend PRIVATE -DVALID_TEST_DYNAMIC_BACKEND_3)
381target_include_directories(Arm_TestValid3_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
382target_include_directories(Arm_TestValid3_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
383target_include_directories(Arm_TestValid3_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/profiling)
384target_include_directories(Arm_TestValid3_backend PRIVATE ${PROJECT_SOURCE_DIR}/profiling/common/include)
385target_include_directories(Arm_TestValid3_backend PRIVATE ${PROJECT_SOURCE_DIR}/profiling/client/include)
386target_link_libraries(Arm_TestValid3_backend armnn)
387set_target_properties(Arm_TestValid3_backend PROPERTIES PREFIX "")
388set_target_properties(Arm_TestValid3_backend PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath5)
389
390add_library_ex(Arm_TestInvalid8_backend MODULE ${testDynamicBackend_sources})
391target_compile_definitions(Arm_TestInvalid8_backend PRIVATE -DINVALID_TEST_DYNAMIC_BACKEND_8)
392target_include_directories(Arm_TestInvalid8_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
393target_include_directories(Arm_TestInvalid8_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
394target_include_directories(Arm_TestInvalid8_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/profiling)
395target_include_directories(Arm_TestInvalid8_backend PRIVATE ${PROJECT_SOURCE_DIR}/profiling/common/include)
396target_include_directories(Arm_TestInvalid8_backend PRIVATE ${PROJECT_SOURCE_DIR}/profiling/client/include)
397target_link_libraries(Arm_TestInvalid8_backend armnn)
398set_target_properties(Arm_TestInvalid8_backend PROPERTIES PREFIX "")
399set_target_properties(Arm_TestInvalid8_backend PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath5)
400
401add_library_ex(Arm_TestValid4_backend MODULE ${testDynamicBackend_sources})
402target_compile_definitions(Arm_TestValid4_backend PRIVATE -DVALID_TEST_DYNAMIC_BACKEND_4)
403target_include_directories(Arm_TestValid4_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
404target_include_directories(Arm_TestValid4_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
405target_include_directories(Arm_TestValid4_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/profiling)
406target_include_directories(Arm_TestValid4_backend PRIVATE ${PROJECT_SOURCE_DIR}/profiling/common/include)
407target_include_directories(Arm_TestValid4_backend PRIVATE ${PROJECT_SOURCE_DIR}/profiling/client/include)
408target_link_libraries(Arm_TestValid4_backend armnn)
409set_target_properties(Arm_TestValid4_backend PROPERTIES PREFIX "")
410set_target_properties(Arm_TestValid4_backend PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath6)
411
412add_library_ex(Arm_TestValid5_backend MODULE ${testDynamicBackend_sources})
413target_compile_definitions(Arm_TestValid5_backend PRIVATE -DVALID_TEST_DYNAMIC_BACKEND_5)
414target_include_directories(Arm_TestValid5_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
415target_include_directories(Arm_TestValid5_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
416target_include_directories(Arm_TestValid5_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/profiling)
417target_include_directories(Arm_TestValid5_backend PRIVATE ${PROJECT_SOURCE_DIR}/profiling/common/include)
418target_include_directories(Arm_TestValid5_backend PRIVATE ${PROJECT_SOURCE_DIR}/profiling/client/include)
419target_link_libraries(Arm_TestValid5_backend armnn)
420set_target_properties(Arm_TestValid5_backend PROPERTIES PREFIX "")
421set_target_properties(Arm_TestValid5_backend PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath6)
422
423add_library_ex(Arm_TestInvalid9_backend MODULE ${testDynamicBackend_sources})
424target_compile_definitions(Arm_TestInvalid9_backend PRIVATE -DINVALID_TEST_DYNAMIC_BACKEND_9)
425target_include_directories(Arm_TestInvalid9_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
426target_include_directories(Arm_TestInvalid9_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
427target_include_directories(Arm_TestInvalid9_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/profiling)
428target_include_directories(Arm_TestInvalid9_backend PRIVATE ${PROJECT_SOURCE_DIR}/profiling/common/include)
429target_include_directories(Arm_TestInvalid9_backend PRIVATE ${PROJECT_SOURCE_DIR}/profiling/client/include)
430target_link_libraries(Arm_TestInvalid9_backend armnn)
431set_target_properties(Arm_TestInvalid9_backend PROPERTIES PREFIX "")
432set_target_properties(Arm_TestInvalid9_backend PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath6)
433
434add_library_ex(Arm_TestInvalid10_backend MODULE ${testDynamicBackend_sources})
435target_compile_definitions(Arm_TestInvalid10_backend PRIVATE -DINVALID_TEST_DYNAMIC_BACKEND_10)
436target_include_directories(Arm_TestInvalid10_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
437target_include_directories(Arm_TestInvalid10_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
438target_include_directories(Arm_TestInvalid10_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/profiling)
439target_include_directories(Arm_TestInvalid10_backend PRIVATE ${PROJECT_SOURCE_DIR}/profiling/common/include)
440target_include_directories(Arm_TestInvalid10_backend PRIVATE ${PROJECT_SOURCE_DIR}/profiling/client/include)
441target_link_libraries(Arm_TestInvalid10_backend armnn)
442set_target_properties(Arm_TestInvalid10_backend PROPERTIES PREFIX "")
443set_target_properties(Arm_TestInvalid10_backend PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath9)
444
445add_library_ex(Arm_TestInvalid11_backend MODULE ${testDynamicBackend_sources})
446target_compile_definitions(Arm_TestInvalid11_backend PRIVATE -DINVALID_TEST_DYNAMIC_BACKEND_11)
447target_include_directories(Arm_TestInvalid11_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
448target_include_directories(Arm_TestInvalid11_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
449target_include_directories(Arm_TestInvalid11_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/profiling)
450target_include_directories(Arm_TestInvalid11_backend PRIVATE ${PROJECT_SOURCE_DIR}/profiling/common/include)
451target_include_directories(Arm_TestInvalid11_backend PRIVATE ${PROJECT_SOURCE_DIR}/profiling/client/include)
452target_link_libraries(Arm_TestInvalid11_backend armnn)
453set_target_properties(Arm_TestInvalid11_backend PROPERTIES PREFIX "")
454set_target_properties(Arm_TestInvalid11_backend PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath9)
455
456file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath7)
457