blob: dbcd55ffbdec7e85f6e09d38f076a6e7c6e4933b [file] [log] [blame]
Éanna Ó Catháin919c14e2020-09-14 17:36:49 +01001# 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
Éanna Ó Catháinc6ab02a2021-04-07 14:35:25 +010041include(../common/cmake/find_opencv.cmake)
42include(../common/cmake/find_armnn.cmake)
Éanna Ó Catháin919c14e2020-09-14 17:36:49 +010043
44include_directories(include)
Éanna Ó Catháinc6ab02a2021-04-07 14:35:25 +010045include_directories(../common/include/ArmnnUtils)
46include_directories(../common/include/Utils)
47include_directories(../common/include/CVUtils)
Éanna Ó Catháin919c14e2020-09-14 17:36:49 +010048
49file(GLOB SOURCES "src/*.cpp")
George Gekov23c26272021-08-16 11:32:10 +010050file(GLOB CVUTILS_SOURCES "../common/src/CVUtils**/*.cpp")
51file(GLOB UTILS_SOURCES "../common/src/Utils**/*.cpp")
Éanna Ó Catháin919c14e2020-09-14 17:36:49 +010052list(REMOVE_ITEM SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/Main.cpp)
53file(GLOB TEST_SOURCES "test/*.cpp")
54file(GLOB APP_MAIN "src/Main.cpp")
55
56if(BUILD_UNIT_TESTS)
57 include(cmake/unit_tests.cmake)
58endif()
59
60
61set(APP_TARGET_NAME "${CMAKE_PROJECT_NAME}")
62
George Gekov23c26272021-08-16 11:32:10 +010063add_executable("${APP_TARGET_NAME}" ${SOURCES} ${CVUTILS_SOURCES} ${UTILS_SOURCES} ${APP_MAIN})
Éanna Ó Catháin919c14e2020-09-14 17:36:49 +010064
65if (NOT OPENCV_LIBS_FOUND)
66 message("Building OpenCV libs")
67 add_dependencies("${APP_TARGET_NAME}" "${OPENCV_LIB}")
68endif()
69
70target_link_libraries("${APP_TARGET_NAME}" PUBLIC ${ARMNN_LIBS} ${OPENCV_LIBS})
71target_include_directories("${APP_TARGET_NAME}" PUBLIC ${ARMNN_INCLUDE_DIR} ${OPENCV_INCLUDE_DIR})