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