diff options
Diffstat (limited to 'samples/ObjectDetection/CMakeLists.txt')
-rw-r--r-- | samples/ObjectDetection/CMakeLists.txt | 50 |
1 files changed, 46 insertions, 4 deletions
diff --git a/samples/ObjectDetection/CMakeLists.txt b/samples/ObjectDetection/CMakeLists.txt index dbcd55ffbd..953c4ed11c 100644 --- a/samples/ObjectDetection/CMakeLists.txt +++ b/samples/ObjectDetection/CMakeLists.txt @@ -2,9 +2,12 @@ # SPDX-License-Identifier: MIT cmake_minimum_required(VERSION 3.0.2) +project (object_detection_example) set(CMAKE_C_STANDARD 99) set(CMAKE_CXX_STANDARD 14) +#location of FindTfLite.cmake and FindTfLiteSrc.cmake +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/../../delegate/cmake/Modules/") # Make the standard a requirement => prevent fallback to previous # supported standard @@ -15,14 +18,15 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_C_EXTENSIONS OFF) set(CMAKE_CXX_EXTENSIONS OFF) -project (object_detection_example) - set(CMAKE_C_FLAGS_DEBUG "-DDEBUG -O0 -g -fPIC") set(CMAKE_C_FLAGS_RELEASE "-DNDEBUG -O3 -fPIC") set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG -O0 -g -fPIC") set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -O3 -fPIC") +SET(USE_ARMNN_DELEGATE False CACHE BOOL "Use delegate file") +message("USE_ARMNN_DELEGATE=${USE_ARMNN_DELEGATE}") + include(ExternalProject) # Build in release mode by default @@ -40,9 +44,23 @@ endif() include(../common/cmake/find_opencv.cmake) include(../common/cmake/find_armnn.cmake) +if( USE_ARMNN_DELEGATE ) + ## Add TfLite dependency + find_package(TfLiteSrc REQUIRED MODULE) + find_package(TfLite REQUIRED MODULE) + ## Add Flatbuffers dependency + find_package(Flatbuffers REQUIRED MODULE) + + add_definitions(-DUSE_TF_LITE_DELEGATE) +endif() include_directories(include) -include_directories(../common/include/ArmnnUtils) +## chose the correct instance of ArmnnNetworkExecutor.hpp +if( USE_ARMNN_DELEGATE ) + include_directories(include/delegate) +else() + include_directories(../common/include/ArmnnUtils) +endif() include_directories(../common/include/Utils) include_directories(../common/include/CVUtils) @@ -50,7 +68,22 @@ file(GLOB SOURCES "src/*.cpp") file(GLOB CVUTILS_SOURCES "../common/src/CVUtils**/*.cpp") file(GLOB UTILS_SOURCES "../common/src/Utils**/*.cpp") list(REMOVE_ITEM SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/Main.cpp) -file(GLOB TEST_SOURCES "test/*.cpp") +if( USE_ARMNN_DELEGATE ) + file(GLOB TEST_SOURCES "test/delegate/*.cpp" "test/*.cpp") + + # 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) +else() + file(GLOB TEST_SOURCES "test/*.cpp") +endif() file(GLOB APP_MAIN "src/Main.cpp") if(BUILD_UNIT_TESTS) @@ -62,6 +95,15 @@ set(APP_TARGET_NAME "${CMAKE_PROJECT_NAME}") add_executable("${APP_TARGET_NAME}" ${SOURCES} ${CVUTILS_SOURCES} ${UTILS_SOURCES} ${APP_MAIN}) +if( USE_ARMNN_DELEGATE ) + set(CMAKE_CXX_FLAGS " -ldl -lrt -Wl,--copy-dt-needed-entries") + target_link_libraries("${APP_TARGET_NAME}" PUBLIC ${TfLite_LIB}) + + target_link_libraries("${APP_TARGET_NAME}" PUBLIC tflite_headers) + target_include_directories("${APP_TARGET_NAME}" PUBLIC ${Flatbuffers_INCLUDE_DIR}) + target_link_libraries("${APP_TARGET_NAME}" PUBLIC ${Flatbuffers_LIB}) +endif() + if (NOT OPENCV_LIBS_FOUND) message("Building OpenCV libs") add_dependencies("${APP_TARGET_NAME}" "${OPENCV_LIB}") |