1# Copyright © 2020 Arm Ltd and Contributors. All rights reserved. 2# SPDX-License-Identifier: MIT 3 4cmake_minimum_required(VERSION 3.0.2) 5 6set(CMAKE_C_STANDARD 99) 7set(CMAKE_CXX_STANDARD 14) 8 9# Make the standard a requirement => prevent fallback to previous 10# supported standard 11set(CMAKE_C_STANDARD_REQUIRED ON) 12set(CMAKE_CXX_STANDARD_REQUIRED ON) 13 14# We want to pass standard C/C++ flags, without gnu extensions 15set(CMAKE_C_EXTENSIONS OFF) 16set(CMAKE_CXX_EXTENSIONS OFF) 17 18project (object_detection_example) 19 20set(CMAKE_C_FLAGS_DEBUG "-DDEBUG -O0 -g -fPIC") 21set(CMAKE_C_FLAGS_RELEASE "-DNDEBUG -O3 -fPIC") 22 23set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG -O0 -g -fPIC") 24set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -O3 -fPIC") 25 26include(ExternalProject) 27 28# Build in release mode by default 29if (NOT CMAKE_BUILD_TYPE STREQUAL Debug) 30 set(CMAKE_BUILD_TYPE Release CACHE INTERNAL "") 31endif() 32 33set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) 34set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) 35set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) 36 37if (NOT DEFINED DEPENDENCIES_DIR) 38 set(DEPENDENCIES_DIR ${CMAKE_BINARY_DIR}/dependencies) 39endif() 40 41include(cmake/find_opencv.cmake) 42include(cmake/find_armnn.cmake) 43 44include_directories(include) 45 46file(GLOB SOURCES "src/*.cpp") 47list(REMOVE_ITEM SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/Main.cpp) 48file(GLOB TEST_SOURCES "test/*.cpp") 49file(GLOB APP_MAIN "src/Main.cpp") 50 51if(BUILD_UNIT_TESTS) 52 include(cmake/unit_tests.cmake) 53endif() 54 55 56set(APP_TARGET_NAME "${CMAKE_PROJECT_NAME}") 57 58add_executable("${APP_TARGET_NAME}" ${SOURCES} ${APP_MAIN}) 59 60if (NOT OPENCV_LIBS_FOUND) 61 message("Building OpenCV libs") 62 add_dependencies("${APP_TARGET_NAME}" "${OPENCV_LIB}") 63endif() 64 65target_link_libraries("${APP_TARGET_NAME}" PUBLIC ${ARMNN_LIBS} ${OPENCV_LIBS}) 66target_include_directories("${APP_TARGET_NAME}" PUBLIC ${ARMNN_INCLUDE_DIR} ${OPENCV_INCLUDE_DIR}) 67