1*89c4ff92SAndroid Build Coastguard Worker# 2*89c4ff92SAndroid Build Coastguard Worker# Copyright © 2023 Arm Ltd and Contributors. All rights reserved. 3*89c4ff92SAndroid Build Coastguard Worker# SPDX-License-Identifier: MIT 4*89c4ff92SAndroid Build Coastguard Worker# 5*89c4ff92SAndroid Build Coastguard Worker 6*89c4ff92SAndroid Build Coastguard Workerset(armnnOpaqueDelegateObject_sources) 7*89c4ff92SAndroid Build Coastguard Workerlist(APPEND armnnOpaqueDelegateObject_sources 8*89c4ff92SAndroid Build Coastguard Worker include/armnn_delegate.hpp 9*89c4ff92SAndroid Build Coastguard Worker include/Version.hpp 10*89c4ff92SAndroid Build Coastguard Worker src/armnn_delegate.cpp 11*89c4ff92SAndroid Build Coastguard Worker src/Redefine.hpp) 12*89c4ff92SAndroid Build Coastguard Worker 13*89c4ff92SAndroid Build Coastguard Workeradd_library(armnnOpaqueDelegateObject OBJECT ${armnnOpaqueDelegateObject_sources}) 14*89c4ff92SAndroid Build Coastguard Worker 15*89c4ff92SAndroid Build Coastguard Workertarget_include_directories(armnnOpaqueDelegateObject 16*89c4ff92SAndroid Build Coastguard Worker PUBLIC 17*89c4ff92SAndroid Build Coastguard Worker $<INSTALL_INTERFACE:include> 18*89c4ff92SAndroid Build Coastguard Worker $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> 19*89c4ff92SAndroid Build Coastguard Worker $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/common/include> 20*89c4ff92SAndroid Build Coastguard Worker PRIVATE 21*89c4ff92SAndroid Build Coastguard Worker ${CMAKE_CURRENT_SOURCE_DIR}/src 22*89c4ff92SAndroid Build Coastguard Worker ${PROJECT_SOURCE_DIR}/common/src) 23*89c4ff92SAndroid Build Coastguard Worker 24*89c4ff92SAndroid Build Coastguard Worker## Add Tflite dependency 25*89c4ff92SAndroid Build Coastguard Workerif(NOT TfLite_INCLUDE_DIR OR NOT TfLite_Schema_INCLUDE_PATH) 26*89c4ff92SAndroid Build Coastguard Worker find_package(TfLiteSrc REQUIRED MODULE) 27*89c4ff92SAndroid Build Coastguard Workerendif() 28*89c4ff92SAndroid Build Coastguard Worker 29*89c4ff92SAndroid Build Coastguard Worker# Various tflite header files are not warning clean 30*89c4ff92SAndroid Build Coastguard Worker# We can't change compilation flags on header files directly, so we need to add them to an interface library first 31*89c4ff92SAndroid Build Coastguard Workeradd_library(tflite_headers_opaque INTERFACE) 32*89c4ff92SAndroid Build Coastguard Workertarget_include_directories(tflite_headers_opaque 33*89c4ff92SAndroid Build Coastguard Worker INTERFACE 34*89c4ff92SAndroid Build Coastguard Worker $<BUILD_INTERFACE:${TfLite_INCLUDE_DIR}> 35*89c4ff92SAndroid Build Coastguard Worker $<INSTALL_INTERFACE:include/tflite_headers_opaque>) 36*89c4ff92SAndroid Build Coastguard Worker 37*89c4ff92SAndroid Build Coastguard Workertarget_compile_options(tflite_headers_opaque 38*89c4ff92SAndroid Build Coastguard Worker INTERFACE 39*89c4ff92SAndroid Build Coastguard Worker -Wno-conversion 40*89c4ff92SAndroid Build Coastguard Worker -Wno-sign-conversion 41*89c4ff92SAndroid Build Coastguard Worker -Wno-unused-parameter 42*89c4ff92SAndroid Build Coastguard Worker -Wno-unused-function) 43*89c4ff92SAndroid Build Coastguard Worker 44*89c4ff92SAndroid Build Coastguard Workertarget_link_libraries(armnnOpaqueDelegateObject PUBLIC tflite_headers_opaque) 45*89c4ff92SAndroid Build Coastguard Worker 46*89c4ff92SAndroid Build Coastguard Worker## Add Flatbuffers dependency 47*89c4ff92SAndroid Build Coastguard Workerfind_package(Flatbuffers REQUIRED MODULE) 48*89c4ff92SAndroid Build Coastguard Worker 49*89c4ff92SAndroid Build Coastguard Workertarget_link_libraries(armnnOpaqueDelegateObject PRIVATE ${Flatbuffers_LIB}) 50*89c4ff92SAndroid Build Coastguard Worker 51*89c4ff92SAndroid Build Coastguard Worker# include/flatbuffers/flatbuffers.h is not warning clean 52*89c4ff92SAndroid Build Coastguard Worker# We can't change compilation flags on header files directly, so we need to add them to an interface library first 53*89c4ff92SAndroid Build Coastguard Workeradd_library(flatbuffer_headers_opaque INTERFACE) 54*89c4ff92SAndroid Build Coastguard Workertarget_include_directories(flatbuffer_headers_opaque 55*89c4ff92SAndroid Build Coastguard Worker INTERFACE 56*89c4ff92SAndroid Build Coastguard Worker $<BUILD_INTERFACE:${Flatbuffers_INCLUDE_DIR}> 57*89c4ff92SAndroid Build Coastguard Worker $<INSTALL_INTERFACE:include/flatbuffer_headers_opaque>) 58*89c4ff92SAndroid Build Coastguard Workertarget_compile_options(flatbuffer_headers_opaque INTERFACE -Wno-sign-conversion) 59*89c4ff92SAndroid Build Coastguard Worker 60*89c4ff92SAndroid Build Coastguard Workertarget_link_libraries(armnnOpaqueDelegateObject PUBLIC flatbuffer_headers_opaque) 61*89c4ff92SAndroid Build Coastguard Worker 62*89c4ff92SAndroid Build Coastguard Worker#################################################### 63*89c4ff92SAndroid Build Coastguard Worker## Export targets 64*89c4ff92SAndroid Build Coastguard Workerinstall(TARGETS armnnOpaqueDelegateObject 65*89c4ff92SAndroid Build Coastguard Worker LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} 66*89c4ff92SAndroid Build Coastguard Worker RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})