-
Notifications
You must be signed in to change notification settings - Fork 7
/
CMakeLists.txt
70 lines (52 loc) · 2 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
cmake_minimum_required(VERSION 3.4)
# suppress warning
cmake_policy(SET CMP0012 NEW)
# suppress windows warning from strcpy
if (WIN32)
add_definitions("/D_CRT_SECURE_NO_WARNINGS /wd4996")
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
endif(WIN32)
# use customized find modules
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
"${CMAKE_SOURCE_DIR}/cmake/Modules/")
project(deepsort)
# 1) add c++ 11 support --std=c++11
# 2) to fix compilation problem: relocation R_X86_64_32 against
# `.rodata' can not be used when making a shared object;
# recompile with -fPIC
if (UNIX OR APPLE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fPIC")
endif(UNIX OR APPLE)
# find OpenCV library
find_package(OpenCV REQUIRED)
# find Eigen3 library
find_package(EIGEN REQUIRED)
# find ncnn library
find_package(ncnn REQUIRED)
# add D_DEBUG
if (CMAKE_BUILD_TYPE STREQUAL Debug)
add_definitions(-D_DEBUG)
endif()
# set default build type
set(CMAKE_BUILD_TYPE Release CACHE STRING "Set default build type to release")
# set default debug and release output directory
file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/lib)
file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/lib/Release)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/lib/Release)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/lib/Release)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/lib/Release)
file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/lib/Debug)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/lib/Debug)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/lib/Debug)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/lib/Debug)
file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/lib/Dependency)
# package dependency dll libraries into md_bone_age
if(UNIX)
get_filename_component(MNN_DIR "${MNN_LIBRARY}" DIRECTORY)
file(GLOB MNN_LIBRARIES ${MNN_DIR}/*so*)
endif(UNIX)
file(COPY ${MNN_LIBRARIES} DESTINATION ${CMAKE_SOURCE_DIR}/lib/Dependency)
# enable testing
enable_testing()
# add submodules
add_subdirectory(deploy)