xref: /aosp_15_r20/external/armnn/delegate/classic/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(armnnClassicDelegateObject_sources)
7*89c4ff92SAndroid Build Coastguard Workerlist(APPEND armnnClassicDelegateObject_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/armnn_external_delegate.cpp
12*89c4ff92SAndroid Build Coastguard Worker        src/Activation.hpp
13*89c4ff92SAndroid Build Coastguard Worker        src/ArgMinMax.hpp
14*89c4ff92SAndroid Build Coastguard Worker        src/BatchMatMul.hpp
15*89c4ff92SAndroid Build Coastguard Worker        src/BatchSpace.hpp
16*89c4ff92SAndroid Build Coastguard Worker        src/ClassicDelegateUtils.hpp
17*89c4ff92SAndroid Build Coastguard Worker        src/Comparison.hpp
18*89c4ff92SAndroid Build Coastguard Worker        src/Convolution.hpp
19*89c4ff92SAndroid Build Coastguard Worker        src/Control.hpp
20*89c4ff92SAndroid Build Coastguard Worker        src/ElementwiseBinary.hpp
21*89c4ff92SAndroid Build Coastguard Worker        src/ElementwiseUnary.hpp
22*89c4ff92SAndroid Build Coastguard Worker        src/Fill.hpp
23*89c4ff92SAndroid Build Coastguard Worker        src/FullyConnected.hpp
24*89c4ff92SAndroid Build Coastguard Worker        src/Gather.hpp
25*89c4ff92SAndroid Build Coastguard Worker        src/GatherNd.hpp
26*89c4ff92SAndroid Build Coastguard Worker        src/LogicalBinary.hpp
27*89c4ff92SAndroid Build Coastguard Worker        src/Lstm.hpp
28*89c4ff92SAndroid Build Coastguard Worker        src/MultiLayerFacade.hpp
29*89c4ff92SAndroid Build Coastguard Worker        src/Normalization.hpp
30*89c4ff92SAndroid Build Coastguard Worker        src/Pack.hpp
31*89c4ff92SAndroid Build Coastguard Worker        src/Pad.hpp
32*89c4ff92SAndroid Build Coastguard Worker        src/Pooling.hpp
33*89c4ff92SAndroid Build Coastguard Worker        src/Prelu.hpp
34*89c4ff92SAndroid Build Coastguard Worker        src/Quantization.hpp
35*89c4ff92SAndroid Build Coastguard Worker        src/Redefine.hpp
36*89c4ff92SAndroid Build Coastguard Worker        src/Reduce.hpp
37*89c4ff92SAndroid Build Coastguard Worker        src/Resize.hpp
38*89c4ff92SAndroid Build Coastguard Worker        src/Round.hpp
39*89c4ff92SAndroid Build Coastguard Worker        src/Shape.hpp
40*89c4ff92SAndroid Build Coastguard Worker        src/SharedFunctions.hpp
41*89c4ff92SAndroid Build Coastguard Worker        src/SharedFunctions.cpp
42*89c4ff92SAndroid Build Coastguard Worker        src/Slice.hpp
43*89c4ff92SAndroid Build Coastguard Worker        src/Softmax.hpp
44*89c4ff92SAndroid Build Coastguard Worker        src/SpaceDepth.hpp
45*89c4ff92SAndroid Build Coastguard Worker        src/Split.hpp
46*89c4ff92SAndroid Build Coastguard Worker        src/Unpack.hpp
47*89c4ff92SAndroid Build Coastguard Worker        src/Transpose.hpp)
48*89c4ff92SAndroid Build Coastguard Worker
49*89c4ff92SAndroid Build Coastguard Workeradd_library(armnnClassicDelegateObject OBJECT ${armnnClassicDelegateObject_sources})
50*89c4ff92SAndroid Build Coastguard Worker
51*89c4ff92SAndroid Build Coastguard Workertarget_include_directories(armnnClassicDelegateObject
52*89c4ff92SAndroid Build Coastguard Worker        PUBLIC
53*89c4ff92SAndroid Build Coastguard Worker            $<INSTALL_INTERFACE:include>
54*89c4ff92SAndroid Build Coastguard Worker            $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
55*89c4ff92SAndroid Build Coastguard Worker            $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/common/include>
56*89c4ff92SAndroid Build Coastguard Worker        PRIVATE
57*89c4ff92SAndroid Build Coastguard Worker            ${CMAKE_CURRENT_SOURCE_DIR}/src
58*89c4ff92SAndroid Build Coastguard Worker            ${PROJECT_SOURCE_DIR}/common/src)
59*89c4ff92SAndroid Build Coastguard Worker
60*89c4ff92SAndroid Build Coastguard Worker## Add Tflite dependency
61*89c4ff92SAndroid Build Coastguard Workerif(NOT TfLite_INCLUDE_DIR OR NOT TfLite_Schema_INCLUDE_PATH)
62*89c4ff92SAndroid Build Coastguard Worker    find_package(TfLiteSrc REQUIRED MODULE)
63*89c4ff92SAndroid Build Coastguard Workerendif()
64*89c4ff92SAndroid Build Coastguard Worker
65*89c4ff92SAndroid Build Coastguard Worker# Various tflite header files are not warning clean
66*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
67*89c4ff92SAndroid Build Coastguard Workeradd_library(tflite_headers INTERFACE)
68*89c4ff92SAndroid Build Coastguard Workertarget_include_directories(tflite_headers
69*89c4ff92SAndroid Build Coastguard Worker        INTERFACE
70*89c4ff92SAndroid Build Coastguard Worker            $<BUILD_INTERFACE:${TfLite_INCLUDE_DIR}>
71*89c4ff92SAndroid Build Coastguard Worker            $<INSTALL_INTERFACE:include/tflite_headers>)
72*89c4ff92SAndroid Build Coastguard Worker
73*89c4ff92SAndroid Build Coastguard Workertarget_compile_options(tflite_headers
74*89c4ff92SAndroid Build Coastguard Worker        INTERFACE
75*89c4ff92SAndroid Build Coastguard Worker            -Wno-conversion
76*89c4ff92SAndroid Build Coastguard Worker            -Wno-sign-conversion
77*89c4ff92SAndroid Build Coastguard Worker            -Wno-unused-parameter
78*89c4ff92SAndroid Build Coastguard Worker            -Wno-unused-function)
79*89c4ff92SAndroid Build Coastguard Worker
80*89c4ff92SAndroid Build Coastguard Workertarget_link_libraries(armnnClassicDelegateObject PUBLIC tflite_headers)
81*89c4ff92SAndroid Build Coastguard Worker
82*89c4ff92SAndroid Build Coastguard Worker## Add Flatbuffers dependency
83*89c4ff92SAndroid Build Coastguard Workerfind_package(Flatbuffers REQUIRED MODULE)
84*89c4ff92SAndroid Build Coastguard Worker
85*89c4ff92SAndroid Build Coastguard Workertarget_link_libraries(armnnClassicDelegateObject PRIVATE ${Flatbuffers_LIB})
86*89c4ff92SAndroid Build Coastguard Worker
87*89c4ff92SAndroid Build Coastguard Worker# include/flatbuffers/flatbuffers.h is not warning clean
88*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
89*89c4ff92SAndroid Build Coastguard Workeradd_library(flatbuffer_headers INTERFACE)
90*89c4ff92SAndroid Build Coastguard Workertarget_include_directories(flatbuffer_headers
91*89c4ff92SAndroid Build Coastguard Worker        INTERFACE
92*89c4ff92SAndroid Build Coastguard Worker            $<BUILD_INTERFACE:${Flatbuffers_INCLUDE_DIR}>
93*89c4ff92SAndroid Build Coastguard Worker            $<INSTALL_INTERFACE:include/flatbuffer_headers>)
94*89c4ff92SAndroid Build Coastguard Workertarget_compile_options(flatbuffer_headers INTERFACE -Wno-sign-conversion)
95*89c4ff92SAndroid Build Coastguard Worker
96*89c4ff92SAndroid Build Coastguard Workertarget_link_libraries(armnnClassicDelegateObject PUBLIC flatbuffer_headers)
97*89c4ff92SAndroid Build Coastguard Worker
98*89c4ff92SAndroid Build Coastguard Worker####################################################
99*89c4ff92SAndroid Build Coastguard Worker## Export targets
100*89c4ff92SAndroid Build Coastguard Workerinstall(TARGETS armnnClassicDelegateObject
101*89c4ff92SAndroid Build Coastguard Worker        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
102*89c4ff92SAndroid Build Coastguard Worker        RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})