xref: /aosp_15_r20/external/armnn/delegate/opaque/CMakeLists.txt (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
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})