-
Notifications
You must be signed in to change notification settings - Fork 23
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
143 lines (126 loc) · 2.98 KB
/
CMakeLists.txt
File metadata and controls
143 lines (126 loc) · 2.98 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
cmake_minimum_required(VERSION 3.0.2)
project(block_localization)
# -mavx causes a lot of errors!!
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64")
if("$ENV{ROS_DISTRO}" STRGREATER "melodic")
add_definitions(-std=c++17 -msse -msse2 -msse3 -msse4 -msse4.1 -msse4.2)
set(CMAKE_CXX_FLAGS "-std=c++17 -msse -msse2 -msse3 -msse4 -msse4.1 -msse4.2")
else()
add_definitions(-std=c++11 -msse -msse2 -msse3 -msse4 -msse4.1 -msse4.2)
set(CMAKE_CXX_FLAGS "-std=c++11 -msse -msse2 -msse3 -msse4 -msse4.1 -msse4.2")
endif()
else()
add_definitions(-std=c++17)
set(CMAKE_CXX_FLAGS "-std=c++17")
endif()
# pcl 1.7 causes a segfault when it is built with debug mode
set(CMAKE_BUILD_TYPE "RELEASE")
find_package(catkin REQUIRED COMPONENTS
nodelet
roscpp
rospy
tf
map_server
actionlib
# pcl libraries
pcl_ros
# external libraries
ndt_omp
hdl_global_localization
# msgs
std_msgs
sensor_msgs
geometry_msgs
nav_msgs
message_generation
)
find_package(PCL REQUIRED)
find_package(GTSAM REQUIRED QUIET)
find_package(Boost REQUIRED)
add_message_files(
DIRECTORY msg
FILES
cloud_info.msg
)
add_service_files(
DIRECTORY srv
FILES
queryMap.srv
)
generate_messages(
DEPENDENCIES
std_msgs
geometry_msgs
nav_msgs
sensor_msgs
)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
pkg_check_modules(NEW_YAMLCPP yaml-cpp>=0.5)
if(NEW_YAMLCPP_FOUND)
add_definitions(-DHAVE_NEW_YAMLCPP)
endif(NEW_YAMLCPP_FOUND)
pkg_check_modules(YAML REQUIRED yaml-cpp)
message(STATUS "YAML=${YAML_INCLUDE_DIRS} ${YAML_LIBRARIES}")
message(STATUS "PCL_INCLUDE_DIRS:" ${PCL_INCLUDE_DIRS})
message(STATUS "PCL_LIBRARY_DIRS:" ${PCL_LIBRARY_DIRS})
message(STATUS "PCL_DEFINITIONS:" ${PCL_DEFINITIONS})
find_package(OpenMP)
if (OPENMP_FOUND)
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
endif()
###################################
## catkin specific configuration ##
###################################
catkin_package(
INCLUDE_DIRS include
DEPENDS PCL GTSAM
DEPENDS YAML
CATKIN_DEPENDS
roscpp
rospy
actionlib
tf
std_msgs
nav_msgs
geometry_msgs
sensor_msgs
message_runtime
message_generation
)
###########
## Build ##
###########
include_directories(include)
include_directories(
${GTSAM_INCLUDE_DIR}
${catkin_INCLUDE_DIRS}
${YAML_INCLUDE_DIRS}
)
# nodelets
add_library(block_localization_nodelet src/block_localization_nodelet.cpp)
target_link_libraries(block_localization_nodelet
${catkin_LIBRARIES}
${PCL_LIBRARIES}
yaml-cpp
gtsam
tbb
)
add_library(globalmap_server_nodelet src/globalmap_server_nodelet.cpp)
target_link_libraries(globalmap_server_nodelet
${catkin_LIBRARIES}
${PCL_LIBRARIES}
yaml-cpp
gtsam
tbb
)
add_library(points_preprocessing_nodelet src/points_preprocessing_nodelet.cpp)
target_link_libraries(points_preprocessing_nodelet
${catkin_LIBRARIES}
${PCL_LIBRARIES}
yaml-cpp
gtsam
tbb
)