| # |
| # Copyright © 2023 Arm Ltd and Contributors. All rights reserved. |
| # SPDX-License-Identifier: MIT |
| # |
| |
| set(armnnOpaqueDelegateObject_sources) |
| list(APPEND armnnOpaqueDelegateObject_sources |
| include/armnn_delegate.hpp |
| include/Version.hpp |
| src/Activation.hpp |
| src/ArgMinMax.hpp |
| src/armnn_delegate.cpp |
| src/armnn_external_delegate.cpp |
| src/BatchMatMul.hpp |
| src/BatchSpace.hpp |
| src/Comparison.hpp |
| src/Control.hpp |
| src/Convolution.hpp |
| src/ElementwiseBinary.hpp |
| src/ElementwiseUnary.hpp |
| src/FullyConnected.hpp |
| src/Gather.hpp |
| src/GatherNd.hpp |
| src/LogicalBinary.hpp |
| src/Lstm.hpp |
| src/Normalization.hpp |
| src/Pad.hpp |
| src/Pooling.hpp |
| src/Pack.hpp |
| src/Prelu.hpp |
| src/Redefine.hpp |
| src/Reduce.hpp |
| src/Resize.hpp |
| src/ReverseV2.hpp |
| src/Round.hpp |
| src/Shape.hpp |
| src/SharedFunctions.cpp |
| src/SharedFunctions.hpp |
| src/Slice.hpp |
| src/Softmax.hpp |
| src/SpaceDepth.hpp |
| src/Split.hpp |
| src/StridedSlice.hpp |
| src/Tile.hpp |
| src/Transpose.hpp |
| src/UnidirectionalSequenceLstm.hpp |
| src/Unpack.hpp) |
| |
| add_library(armnnOpaqueDelegateObject OBJECT ${armnnOpaqueDelegateObject_sources}) |
| |
| target_include_directories(armnnOpaqueDelegateObject |
| 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_opaque INTERFACE) |
| target_include_directories(tflite_headers_opaque |
| INTERFACE |
| $<BUILD_INTERFACE:${TfLite_INCLUDE_DIR}> |
| $<INSTALL_INTERFACE:include/tflite_headers_opaque>) |
| |
| target_compile_options(tflite_headers_opaque |
| INTERFACE |
| -Wno-conversion |
| -Wno-sign-conversion |
| -Wno-unused-parameter |
| -Wno-unused-function) |
| |
| target_link_libraries(armnnOpaqueDelegateObject PUBLIC tflite_headers_opaque) |
| |
| ## Add Flatbuffers dependency |
| find_package(Flatbuffers REQUIRED MODULE) |
| |
| target_link_libraries(armnnOpaqueDelegateObject 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_opaque INTERFACE) |
| target_include_directories(flatbuffer_headers_opaque |
| INTERFACE |
| $<BUILD_INTERFACE:${Flatbuffers_INCLUDE_DIR}> |
| $<INSTALL_INTERFACE:include/flatbuffer_headers_opaque>) |
| target_compile_options(flatbuffer_headers_opaque INTERFACE -Wno-sign-conversion) |
| |
| target_link_libraries(armnnOpaqueDelegateObject PUBLIC flatbuffer_headers_opaque) |
| |
| # Additional Absl Sync for Opaque Delegate |
| find_package(TfLiteAbsl REQUIRED MODULE) |
| target_include_directories(armnnOpaqueDelegateObject PUBLIC ${TfLite_ABSL_SYNC_HEADERS}) |
| target_link_libraries(armnnOpaqueDelegateObject PUBLIC ${TfLite_Extra_Absl_LIB}) |
| |
| #################################################### |
| ## Export targets |
| install(TARGETS armnnOpaqueDelegateObject |
| LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} |
| RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) |