xref: /aosp_15_r20/external/armnn/src/backends/cl/CMakeLists.txt (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1#
2# Copyright © 2017-2023 Arm Ltd and Contributors. All rights reserved.
3# SPDX-License-Identifier: MIT
4#
5
6if(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        ClBackendDefaultAllocator.hpp
27        ClBackendId.hpp
28        ClBackendModelContext.cpp
29        ClBackendModelContext.hpp
30        ClContextControl.cpp
31        ClContextControl.hpp
32        ClContextDeserializer.hpp
33        ClContextDeserializer.cpp
34        ClContextSerializer.hpp
35        ClContextSerializer.cpp
36        ClImportTensorHandle.hpp
37        ClImportTensorHandleFactory.cpp
38        ClImportTensorHandleFactory.hpp
39        ClLayerSupport.cpp
40        ClLayerSupport.hpp
41        ClRegistryInitializer.cpp
42        ClTensorHandle.hpp
43        ClTensorHandleFactory.cpp
44        ClTensorHandleFactory.hpp
45        ClWorkloadFactory.cpp
46        ClWorkloadFactory.hpp
47        ICLTensorProxy.hpp
48        OpenClTimer.cpp
49        OpenClTimer.hpp
50    )
51
52    add_subdirectory(workloads)
53
54    if(BUILD_UNIT_TESTS)
55        add_subdirectory(test)
56    endif()
57
58    include_directories(SYSTEM "${FLATBUFFERS_INCLUDE_PATH}")
59
60else()
61    list(APPEND armnnClBackend_sources
62        ClBackendId.hpp
63        ClLayerSupport.cpp
64        ClLayerSupport.hpp
65    )
66endif()
67
68add_library(armnnClBackend OBJECT ${armnnClBackend_sources})
69target_include_directories(armnnClBackend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
70target_include_directories(armnnClBackend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnnUtils)
71target_include_directories(armnnClBackend PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
72target_include_directories(armnnClBackend PRIVATE ${PROJECT_SOURCE_DIR}/src/profiling)
73target_include_directories(armnnClBackend PRIVATE ${PROJECT_SOURCE_DIR}/profiling/common/include)
74target_include_directories(armnnClBackend PRIVATE ${PROJECT_SOURCE_DIR}/profiling/client/include)
75