aboutsummaryrefslogtreecommitdiff
path: root/delegate/CMakeLists.txt
diff options
context:
space:
mode:
authorSadik Armagan <sadik.armagan@arm.com>2020-10-19 17:35:30 +0100
committerSadik Armagan <sadik.armagan@arm.com>2020-10-19 16:34:15 +0000
commit3c24f43ff9afb50898d6a73ccddbc0936f72fdad (patch)
treeb4101aab6f085279cddefdc539fb3f622fc8a1b7 /delegate/CMakeLists.txt
parent418c7dd833accc061ba4cba2743631e582962915 (diff)
downloadarmnn-3c24f43ff9afb50898d6a73ccddbc0936f72fdad.tar.gz
IVGCVSW-5365 'Create the TfLite Delegate subdirectory in ArmNN'
* Created delegate sub-directory under armnn * Created Delegate, ArmnnSubgraph and DelegateOptions classes * Created cmake files. * Integrated doctest (under MIT license) as testing framework Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: If725ebd62c40a97c783cdad22bca48709d44338c
Diffstat (limited to 'delegate/CMakeLists.txt')
-rw-r--r--delegate/CMakeLists.txt134
1 files changed, 134 insertions, 0 deletions
diff --git a/delegate/CMakeLists.txt b/delegate/CMakeLists.txt
new file mode 100644
index 0000000000..be18052548
--- /dev/null
+++ b/delegate/CMakeLists.txt
@@ -0,0 +1,134 @@
+#
+# Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
+
+cmake_minimum_required (VERSION 3.8.0)
+project(armnnDelegate)
+
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
+
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
+
+set(armnnDelegate_sources)
+list(APPEND armnnDelegate_sources
+ include/armnn_delegate.hpp
+ include/DelegateOptions.hpp
+ src/armnn_delegate.cpp
+ src/DelegateOptions.cpp)
+
+add_library(armnnDelegate SHARED ${armnnDelegate_sources})
+
+target_include_directories(armnnDelegate
+ PUBLIC
+ $<INSTALL_INTERFACE:include>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+ PRIVATE
+ ${CMAKE_CURRENT_SOURCE_DIR}/src)
+
+include(GNUInstallDirs)
+
+## Add Armnn as a Dependency
+find_package(Armnn REQUIRED)
+target_link_libraries(armnnDelegate Armnn::Armnn)
+
+## Add Tensorflow v2.3.1 dependency
+find_package(Tensorflow 2.3.1 REQUIRED MODULE)
+
+target_link_libraries(armnnDelegate
+ ${Tensorflow_LIB})
+
+target_include_directories(armnnDelegate
+ PRIVATE
+ ${Tensorflow_INCLUDE_DIR})
+
+## Add TfLite v2.3.1 dependency
+find_package(TfLite REQUIRED MODULE)
+
+target_link_libraries(armnnDelegate
+ ${TfLite_LIB})
+
+target_include_directories(armnnDelegate
+ PRIVATE
+ ${TfLite_INCLUDE_DIR})
+
+target_include_directories(armnnDelegate
+ SYSTEM PRIVATE
+ "${TfLite_Schema_INCLUDE_PATH}")
+
+## Add Flatbuffers dependency
+find_package(Flatbuffers REQUIRED MODULE)
+
+target_link_libraries(armnnDelegate
+ ${Flatbuffers_LIB})
+
+target_include_directories(armnnDelegate
+ PRIVATE
+ ${Flatbuffers_INCLUDE_DIR})
+
+set(armnnDelegate_unittest_sources)
+list(APPEND armnnDelegate_unittest_sources
+ src/test/ArmnnDelegateTest.cpp)
+
+add_executable(DelegateUnitTests ${armnnDelegate_unittest_sources})
+target_include_directories(DelegateUnitTests PRIVATE src)
+target_include_directories(DelegateUnitTests PRIVATE third-party)
+
+target_link_libraries(DelegateUnitTests armnnDelegate)
+
+target_include_directories(DelegateUnitTests
+ PRIVATE
+ ${TfLite_INCLUDE_DIR})
+
+target_include_directories(DelegateUnitTests
+ SYSTEM PRIVATE
+ "${TfLite_Schema_INCLUDE_PATH}")
+
+####################################################
+## Export targets
+set(armnn_delegate_export_targets)
+list(APPEND armnn_delegate_export_targets
+ armnnDelegate)
+
+install(
+ TARGETS ${armnn_delegate_export_targets}
+ EXPORT armnn-delegate-targets
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+
+## Set export alias
+set_target_properties(armnnDelegate
+ PROPERTIES
+ EXPORT_NAME ArmnnDelegate)
+
+## Export target scrips
+install(
+ EXPORT armnn-delegate-targets
+ FILE ArmnnDelegateTargets.cmake
+ NAMESPACE ArmnnDelegate::
+ DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+## Create ArmnnDelegateConfig.cmake
+include(CMakePackageConfigHelpers)
+set(INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR})
+message(STATUS "CMAKE_CURRENT_LIST_DIR ${CMAKE_CURRENT_LIST_DIR}" )
+message(STATUS "CMAKE_CURRENT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}" )
+configure_package_config_file(
+ ${CMAKE_CURRENT_LIST_DIR}/cmake/Modules/ArmnnDelegateConfig.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/ArmnnDelegateConfig.cmake
+ INSTALL_DESTINATION ${INSTALL_CONFIGDIR})
+
+## Install ArmNN Delegate config file
+install(
+ FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/ArmnnDelegateConfig.cmake
+ DESTINATION ${INSTALL_CONFIGDIR})
+
+## Export from build tree
+export(
+ EXPORT armnn-delegate-targets
+ FILE ${CMAKE_CURRENT_BINARY_DIR}/ArmnnDelegateTargets.cmake
+ NAMESPACE ArmnnDelegate::)
+
+#################################################### \ No newline at end of file