-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
152 lines (117 loc) · 4.79 KB
/
CMakeLists.txt
File metadata and controls
152 lines (117 loc) · 4.79 KB
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# CMakeLists
cmake_minimum_required(VERSION 3.1)
project (dubinsAreaCoverage CXX)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
enable_testing()
################################
# OGDF
################################
# FIXME using hardcoded ogdf variables
#find_package(Ogdf REQUIRED)
#include_directories( ${OGDF_INCLUDE_DIRS} )
set(OGDF_SOURCE_DIR ${CMAKE_SOURCE_DIR}/lib/ogdf )
find_library(OGDF ogdf)
find_library(COIN coin)
# Look for include directories
find_path(OGDF_INCLUDE_DIR ogdf/basic/basic.h coin/Coin_C_defines.h
PATHS: ${OGDF_SOURCE_DIR}/include )
if (OGDF_INCLUDE_DIR STREQUAL "OGDF_INCLUDE_DIR-NOTFOUND")
message(FATAL_ERROR "OGDF include directory could not be found!")
endif()
include_directories( ${OGDF_INCLUDE_DIR} )
# Look for libraries
find_path(OGDF_LIBRARY_DIR libCOIN.a libOGDF.a
PATHS: ${OGDF_SOURCE_DIR}/_debug ${OGDF_SOURCE_DIR}/_release )
if (OGDF_LIBRARY_DIR STREQUAL "OGDF_LIBRARY_DIR-NOTFOUND")
message(FATAL_ERROR "OGDF libraries could not be found!")
endif()
# Add libraries to link directories
link_directories( ${OGDF_SOURCE_DIR}/_debug )
if ( CMAKE_BUILD_TYPE MATCHES Debug )
link_directories( ${OGDF_SOURCE_DIR}/_debug )
else()
link_directories( ${OGDF_SOURCE_DIR}/_release )
endif()
set( OGDF_LIBRARIES OGDF COIN )
################################
# LKH Binary
################################
find_program(LKH_EXECUTABLE LKH . PATHS: lib/LKH lib/LKH-2.0.7 )
message("-- Found LKH binary: " ${LKH_EXECUTABLE})
if ( LKH_EXECUTABLE STREQUAL "LKH_EXECUTABLE-NOTFOUND" )
message(FATAL_ERROR "LKH executable could not found!")
else()
set( LKH_EXECUTABLE_FLAG "-DLKH_EXECUTABLE='\"${LKH_EXECUTABLE}\"'")
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS} ${LKH_EXECUTABLE_FLAG}" )
endif()
################################
# Dubins-Curves Libraries
################################
link_directories( ${CMAKE_SOURCE_DIR}/lib/dubins-curves )
include_directories( ${CMAKE_SOURCE_DIR}/lib/dubins-curves/include )
################################
# Eigen and others
################################
# Header-only libraries are include only
find_package(Eigen3 REQUIRED)
include_directories( ${EIGEN3_INCLUDE_DIR} )
find_package(Cxxopts REQUIRED)
include_directories( ${CXXOPTS_INCLUDE_DIR} )
find_package(Stacktrace REQUIRED)
include_directories( ${STACKTRACE_INCLUDE_DIR} )
################################
# Dubins Path Planner
################################
# DPP library includes
include_directories( ${CMAKE_SOURCE_DIR}/include )
include_directories( ${CMAKE_SOURCE_DIR}/include/dpp )
include_directories( ${CMAKE_SOURCE_DIR}/include/dpp/basic )
include_directories( ${CMAKE_SOURCE_DIR}/include/dpp/planner )
include_directories( ${CMAKE_SOURCE_DIR}/include/dpp/planalg )
################################
# Settings and Compiler Flags
################################
# Set c++11 (c++0x)
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
if(COMPILER_SUPPORTS_CXX11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
elseif(COMPILER_SUPPORTS_CXX0X)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
else()
message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
endif()
# Make binaries output in the same directory
#set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
## Compiler flags
# OSX, TODO add if statement
add_definitions("-fno-pie")
# Debug flags
if ( CMAKE_BUILD_TYPE MATCHES Debug )
message( "Compiling DPP in debug mode." )
set(GCC_DPP_DEBUG_COMPILE_FLAGS "-DDPP_DEBUG")
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS} ${GCC_DPP_DEBUG_COMPILE_FLAGS}" )
## Print debug information about compiler
# the compiler used for C files
MESSAGE( STATUS "CMAKE_C_COMPILER: " ${CMAKE_C_COMPILER} )
# the compiler used for C++ files
MESSAGE( STATUS "CMAKE_CXX_COMPILER: " ${CMAKE_CXX_COMPILER} )
# if the compiler is a variant of gcc, this should be set to 1
MESSAGE( STATUS "CMAKE_COMPILER_IS_GNUCC: " ${CMAKE_COMPILER_IS_GNUCC} )
# if the compiler is a variant of g++, this should be set to 1
MESSAGE( STATUS "CMAKE_COMPILER_IS_GNUCXX : " ${CMAKE_COMPILER_IS_GNUCXX} )
MESSAGE( STATUS "CXX Compiler flags: " ${CMAKE_CXX_FLAGS} )
MESSAGE( STATUS "Include paths:")
get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
foreach(dir ${dirs})
message(STATUS "dir='${dir}'")
endforeach()
endif ( CMAKE_BUILD_TYPE MATCHES Debug )
################################
# CMake Project Subdirectories
################################
## Add subdirectories
add_subdirectory( src )
add_subdirectory( test )
add_subdirectory( examples )