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