From 3c24f43ff9afb50898d6a73ccddbc0936f72fdad Mon Sep 17 00:00:00 2001 From: Sadik Armagan Date: Mon, 19 Oct 2020 17:35:30 +0100 Subject: 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 Change-Id: If725ebd62c40a97c783cdad22bca48709d44338c --- delegate/CMakeLists.txt | 134 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 delegate/CMakeLists.txt (limited to 'delegate/CMakeLists.txt') 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 + $ + $ + 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 -- cgit v1.2.1