aboutsummaryrefslogtreecommitdiff
path: root/delegate/classic/CMakeLists.txt
blob: 72ecc28d97fb0d874f15744a3b0137b3f19984cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#
# Copyright © 2023-2024 Arm Ltd and Contributors. All rights reserved.
# SPDX-License-Identifier: MIT
#

set(armnnClassicDelegateObject_sources)
list(APPEND armnnClassicDelegateObject_sources
        include/armnn_delegate.hpp
        include/Version.hpp
        src/armnn_delegate.cpp
        src/armnn_external_delegate.cpp
        src/Activation.hpp
        src/ArgMinMax.hpp
        src/BatchMatMul.hpp
        src/BatchSpace.hpp
        src/BroadcastTo.hpp
        src/ClassicDelegateUtils.hpp
        src/Comparison.hpp
        src/Convolution.hpp
        src/Control.hpp
        src/ElementwiseBinary.hpp
        src/ElementwiseUnary.hpp
        src/Fill.hpp
        src/FullyConnected.hpp
        src/Gather.hpp
        src/GatherNd.hpp
        src/LogicalBinary.hpp
        src/Lstm.hpp
        src/Normalization.hpp
        src/Pack.hpp
        src/Pad.hpp
        src/Pooling.hpp
        src/Prelu.hpp
        src/Quantization.hpp
        src/Redefine.hpp
        src/Reduce.hpp
        src/Resize.hpp
        src/ReverseV2.hpp
        src/Round.hpp
        src/ScatterNd.hpp
        src/Shape.hpp
        src/SharedFunctions.hpp
        src/SharedFunctions.cpp
        src/Slice.hpp
        src/Softmax.hpp
        src/SpaceDepth.hpp
        src/Split.hpp
        src/Unpack.hpp
        src/Tile.hpp
        src/Transpose.hpp)

add_library(armnnClassicDelegateObject OBJECT ${armnnClassicDelegateObject_sources})

target_include_directories(armnnClassicDelegateObject
        PUBLIC
            $<INSTALL_INTERFACE:include>
            $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
            $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/common/include>
        PRIVATE
            ${CMAKE_CURRENT_SOURCE_DIR}/src
            ${PROJECT_SOURCE_DIR}/common/src)

## Add Tflite dependency
if(NOT TfLite_INCLUDE_DIR OR NOT TfLite_Schema_INCLUDE_PATH)
    find_package(TfLiteSrc REQUIRED MODULE)
endif()

# Various tflite header files are not warning clean
# We can't change compilation flags on header files directly, so we need to add them to an interface library first
add_library(tflite_headers INTERFACE)
target_include_directories(tflite_headers
        INTERFACE
            $<BUILD_INTERFACE:${TfLite_INCLUDE_DIR}>
            $<INSTALL_INTERFACE:include/tflite_headers>)

target_compile_options(tflite_headers
        INTERFACE
            -Wno-conversion
            -Wno-sign-conversion
            -Wno-unused-parameter
            -Wno-unused-function)

target_link_libraries(armnnClassicDelegateObject PUBLIC tflite_headers)

## Add Flatbuffers dependency
find_package(Flatbuffers REQUIRED MODULE)

target_link_libraries(armnnClassicDelegateObject PRIVATE ${Flatbuffers_LIB})

# include/flatbuffers/flatbuffers.h is not warning clean
# We can't change compilation flags on header files directly, so we need to add them to an interface library first
add_library(flatbuffer_headers INTERFACE)
target_include_directories(flatbuffer_headers
        INTERFACE
            $<BUILD_INTERFACE:${Flatbuffers_INCLUDE_DIR}>
            $<INSTALL_INTERFACE:include/flatbuffer_headers>)
target_compile_options(flatbuffer_headers INTERFACE -Wno-sign-conversion -Wno-sign-compare)

target_link_libraries(armnnClassicDelegateObject PUBLIC flatbuffer_headers)

####################################################
## Export targets
install(TARGETS armnnClassicDelegateObject
        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
        RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})