blob: 20c42061fc3874538a7663a6114ecbbe2e9824d8 [file] [log] [blame]
David Beckac42efd2018-09-26 17:41:13 +01001#
Cathal Corbettd9e55f02023-01-11 13:03:21 +00002# Copyright © 2017-2023 Arm Ltd and Contributors. All rights reserved.
David Beckac42efd2018-09-26 17:41:13 +01003# SPDX-License-Identifier: MIT
4#
5
David Beckac42efd2018-09-26 17:41:13 +01006if(ARMCOMPUTECL)
Matthew Sloyan80fbcd52021-01-07 13:28:47 +00007 find_program(FLATC flatc
8 HINTS ${FLATC_DIR}
9 DOC "Path to 'flatc', the flatbuffers compiler")
10 if (NOT FLATC)
Matthew Sloyan29fde272021-02-09 16:46:14 +000011 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 )
Matthew Sloyan80fbcd52021-01-07 13:28:47 +000018 endif()
19
Aron Virginas-Tar3b278e92018-10-12 13:00:55 +010020 list(APPEND armnnClBackend_sources
Matthew Sloyan80fbcd52021-01-07 13:28:47 +000021 ClContextSchema_generated.h
Aron Virginas-Tar9c5db112018-10-25 11:10:49 +010022 ClBackend.cpp
23 ClBackend.hpp
David Beck1b61be52018-11-08 09:19:14 +000024 ClBackendContext.cpp
25 ClBackendContext.hpp
David Monahan6642b8a2021-11-04 16:31:46 +000026 ClBackendDefaultAllocator.hpp
David Beck9efb57d2018-11-05 13:40:33 +000027 ClBackendId.hpp
Sadik Armagan045f6be2020-09-10 13:37:32 +010028 ClBackendModelContext.cpp
29 ClBackendModelContext.hpp
Aron Virginas-Tar9c5db112018-10-25 11:10:49 +010030 ClContextControl.cpp
31 ClContextControl.hpp
Matthew Sloyan80fbcd52021-01-07 13:28:47 +000032 ClContextDeserializer.hpp
33 ClContextDeserializer.cpp
34 ClContextSerializer.hpp
35 ClContextSerializer.cpp
David Monahane4a41dc2021-04-14 16:55:36 +010036 ClImportTensorHandle.hpp
Colm Donelanc74b1752021-03-12 15:58:48 +000037 ClImportTensorHandleFactory.cpp
38 ClImportTensorHandleFactory.hpp
David Beck9efb57d2018-11-05 13:40:33 +000039 ClLayerSupport.cpp
40 ClLayerSupport.hpp
Matteo Martincighe67edb22019-08-14 14:05:46 +010041 ClRegistryInitializer.cpp
Aron Virginas-Tar9c5db112018-10-25 11:10:49 +010042 ClTensorHandle.hpp
Jan Eilerse9f0f0f2019-08-16 10:28:37 +010043 ClTensorHandleFactory.cpp
44 ClTensorHandleFactory.hpp
David Beck9efb57d2018-11-05 13:40:33 +000045 ClWorkloadFactory.cpp
46 ClWorkloadFactory.hpp
Narumol Prangnawarat9ef36142022-01-25 15:15:34 +000047 ICLTensorProxy.hpp
Aron Virginas-Tar3b278e92018-10-12 13:00:55 +010048 OpenClTimer.cpp
49 OpenClTimer.hpp
50 )
51
arovir0143095f32018-10-09 18:04:24 +010052 add_subdirectory(workloads)
David Beck39fedf02018-10-16 12:58:49 +010053
54 if(BUILD_UNIT_TESTS)
55 add_subdirectory(test)
56 endif()
David Beck9efb57d2018-11-05 13:40:33 +000057
Matthew Sloyanfc3efb32021-01-13 14:30:19 +000058 include_directories(SYSTEM "${FLATBUFFERS_INCLUDE_PATH}")
59
David Beck9efb57d2018-11-05 13:40:33 +000060else()
61 list(APPEND armnnClBackend_sources
62 ClBackendId.hpp
David Beck9efb57d2018-11-05 13:40:33 +000063 ClLayerSupport.cpp
64 ClLayerSupport.hpp
David Beck9efb57d2018-11-05 13:40:33 +000065 )
David Beckac42efd2018-09-26 17:41:13 +010066endif()
67
David Beck3cc9a622018-10-12 10:38:31 +010068add_library(armnnClBackend OBJECT ${armnnClBackend_sources})
David Beckac42efd2018-09-26 17:41:13 +010069target_include_directories(armnnClBackend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
70target_include_directories(armnnClBackend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnnUtils)
Aron Virginas-Tarc9cc8042018-11-01 16:15:57 +000071target_include_directories(armnnClBackend PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
Narumol Prangnawarat85ad78c2019-11-18 15:34:23 +000072target_include_directories(armnnClBackend PRIVATE ${PROJECT_SOURCE_DIR}/src/profiling)
Finn Williams56b465d2020-05-15 13:34:12 +010073target_include_directories(armnnClBackend PRIVATE ${PROJECT_SOURCE_DIR}/profiling/common/include)
Jim Flynn27761832022-03-20 21:52:17 +000074target_include_directories(armnnClBackend PRIVATE ${PROJECT_SOURCE_DIR}/profiling/client/include)