forked from iKrishneel/octomap_server2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
129 lines (108 loc) · 2.93 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
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
cmake_minimum_required(VERSION 3.5)
project(octomap_server2)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
add_definitions("-Wall")
add_definitions("-Wextra")
add_definitions("-Wpedantic")
add_definitions("-g")
add_definitions("-O3") # because normal release is just -O2
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(rclcpp_components REQUIRED)
find_package(PCL 1.7 REQUIRED)
find_package(sensor_msgs REQUIRED)
find_package(std_msgs REQUIRED)
find_package(nav_msgs REQUIRED)
find_package(geometry_msgs REQUIRED)
find_package(visualization_msgs REQUIRED)
find_package(std_srvs REQUIRED)
find_package(pcl_conversions REQUIRED)
find_package(message_filters REQUIRED)
find_package(octomap REQUIRED)
find_package(octomap_msgs REQUIRED)
find_package(tf2 REQUIRED)
find_package(tf2_ros REQUIRED)
find_package(tf2_msgs REQUIRED)
find_package(laser_geometry REQUIRED)
find_package(Eigen3 REQUIRED)
set(Eigen_INCLUDE_DIRS ${EIGEN3_INCLUDE_DIRS})
set(Eigen_LIBRARIES ${EIGEN3_LIBRARIES})
# include include
include_directories(
include
${PCL_INCLUDE_DIRS}
)
## --------------------------------------------------------------
## | Octomap conversions |
## --------------------------------------------------------------
add_library(OctomapConversions SHARED
src/conversions.cpp
)
ament_target_dependencies(OctomapConversions
rclcpp
)
ament_export_libraries(OctomapConversions)
## --------------------------------------------------------------
## | Octomap server |
## --------------------------------------------------------------
add_library(octomap_server2 SHARED
src/octomap_server.cpp
src/transforms.cpp
)
ament_target_dependencies(octomap_server2
rclcpp
PCL
pcl_conversions
sensor_msgs
std_msgs
nav_msgs
visualization_msgs
geometry_msgs
std_srvs
octomap
octomap_msgs
message_filters
tf2_ros
tf2_msgs
tf2
laser_geometry
)
target_link_libraries(octomap_server2 ${EIGEN3_LIBRARIES} ${PCL_LIBRARIES} ${OCTOMAP_LIBRARIES})
rclcpp_components_register_node(octomap_server2
PLUGIN "octomap_server::OctomapServer"
EXECUTABLE octomap_server)
## --------------------------------------------------------------
## | install |
## --------------------------------------------------------------
# executables
install(
TARGETS
octomap_server
DESTINATION lib/${PROJECT_NAME}
)
# libraries
ament_export_include_directories(include)
install(
TARGETS
OctomapConversions
octomap_server2
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
RUNTIME DESTINATION bin
INCLUDES DESTINATION include
)
install(DIRECTORY
launch
DESTINATION share/${PROJECT_NAME}/
)
install(DIRECTORY
config
DESTINATION share/${PROJECT_NAME}/
)
install(DIRECTORY
rviz
DESTINATION share/${PROJECT_NAME}/
)
ament_package()