IVGCVSW-5679 Fix Android NDK OOB build
[platform/upstream/armnn.git] / src / backends / cl / CMakeLists.txt
1 #
2 # Copyright © 2017 Arm Ltd. All rights reserved.
3 # SPDX-License-Identifier: MIT
4 #
5
6 if(ARMCOMPUTECL)
7     find_program(FLATC flatc
8                  HINTS ${FLATC_DIR}
9                  DOC "Path to 'flatc', the flatbuffers compiler")
10     if (NOT FLATC)
11         message(WARNING "flatc not found. Specify the full path of the flatc executable with -DFLATC=<flatc path>")
12     else()
13         add_custom_command(
14             # Updates ClContextSchema_generated.h if changes are made.
15             OUTPUT ClContextSchema_generated.h DEPENDS ClContextSchema.fbs
16             COMMAND ${FLATC} -o ${CMAKE_CURRENT_BINARY_DIR} --cpp ${CMAKE_CURRENT_SOURCE_DIR}/ClContextSchema.fbs
17         )
18     endif()
19
20     list(APPEND armnnClBackend_sources
21         ClContextSchema_generated.h
22         ClBackend.cpp
23         ClBackend.hpp
24         ClBackendContext.cpp
25         ClBackendContext.hpp
26         ClBackendId.hpp
27         ClBackendModelContext.cpp
28         ClBackendModelContext.hpp
29         ClContextControl.cpp
30         ClContextControl.hpp
31         ClContextDeserializer.hpp
32         ClContextDeserializer.cpp
33         ClContextSerializer.hpp
34         ClContextSerializer.cpp
35         ClLayerSupport.cpp
36         ClLayerSupport.hpp
37         ClRegistryInitializer.cpp
38         ClTensorHandle.hpp
39         ClTensorHandleFactory.cpp
40         ClTensorHandleFactory.hpp
41         ClWorkloadFactory.cpp
42         ClWorkloadFactory.hpp
43         OpenClTimer.cpp
44         OpenClTimer.hpp
45     )
46
47     add_subdirectory(workloads)
48
49     if(BUILD_UNIT_TESTS)
50         add_subdirectory(test)
51     endif()
52
53     include_directories(SYSTEM "${FLATBUFFERS_INCLUDE_PATH}")
54
55 else()
56     list(APPEND armnnClBackend_sources
57         ClBackendId.hpp
58         ClLayerSupport.cpp
59         ClLayerSupport.hpp
60     )
61 endif()
62
63 add_library(armnnClBackend OBJECT ${armnnClBackend_sources})
64 target_include_directories(armnnClBackend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
65 target_include_directories(armnnClBackend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnnUtils)
66 target_include_directories(armnnClBackend PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
67 target_include_directories(armnnClBackend PRIVATE ${PROJECT_SOURCE_DIR}/src/profiling)
68 target_include_directories(armnnClBackend PRIVATE ${PROJECT_SOURCE_DIR}/profiling/common/include)