-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathCMakeLists.txt
142 lines (122 loc) · 2.44 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
130
131
132
133
134
135
136
137
138
139
140
141
142
cmake_minimum_required(VERSION 3.5)
project(flock2)
#=============
# Setup
#=============
# Default to C99
if(NOT CMAKE_C_STANDARD)
set(CMAKE_C_STANDARD 99)
endif()
# Default to C++14
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 14)
endif()
# Debugging: set _dump_all_variables to true
set(_dump_all_variables false)
if(_dump_all_variables)
get_cmake_property(_variable_names VARIABLES)
list(SORT _variable_names)
foreach(_variable_name ${_variable_names})
message(STATUS "${_variable_name}=${${_variable_name}}")
endforeach()
endif()
# Find packages
find_package(ament_cmake REQUIRED)
find_package(builtin_interfaces REQUIRED)
find_package(geometry_msgs REQUIRED)
find_package(nav_msgs REQUIRED)
find_package(rclcpp REQUIRED)
find_package(rclpy REQUIRED)
find_package(ros2_shared REQUIRED)
find_package(sensor_msgs REQUIRED)
find_package(std_msgs REQUIRED)
find_package(tello_msgs REQUIRED)
find_package(tf2_msgs REQUIRED)
find_package(visualization_msgs REQUIRED)
# Local includes
include_directories(
include
${geometry_msgs_INCLUDE_DIRS}
${nav_msgs_INCLUDE_DIRS}
${rclcpp_INCLUDE_DIRS}
${ros2_shared_INCLUDE_DIRS}
${sensor_msgs_INCLUDE_DIRS}
${tello_msgs_INCLUDE_DIRS}
${tf2_msgs_INCLUDE_DIRS}
${visualization_msgs_INCLUDE_DIRS}
)
#=============
# Flock base node
#=============
add_executable(
flock_base
src/flock_base.cpp
)
ament_target_dependencies(
flock_base
rclcpp
ros2_shared
sensor_msgs
std_msgs
)
#=============
# Drone base node
#=============
add_executable(
drone_base
src/drone_base.cpp
src/action_mgr.cpp
src/flight_controller_basic.cpp
src/flight_controller_simple.cpp
)
ament_target_dependencies(
drone_base
geometry_msgs
nav_msgs
rclcpp
ros2_shared
sensor_msgs
std_msgs
tello_msgs
)
#=============
# Planner node
#=============
add_executable(
planner_node
src/planner_node.cpp
src/simple_planner.cpp
)
ament_target_dependencies(
planner_node
nav_msgs
rclcpp
ros2_shared
std_msgs
)
#=============
# Install
#=============
# Install targets
install(
TARGETS
flock_base
drone_base
planner_node
DESTINATION lib/${PROJECT_NAME}
)
# Install all Python programs
install(
PROGRAMS # PROGRAMS sets execute bits, FILES clears them
src/flock_simple_path.py
src/smooth_path_4poly_2min.py
src/util.py
DESTINATION lib/${PROJECT_NAME}
)
# Install various directories
install(
DIRECTORY
launch
DESTINATION share/${PROJECT_NAME}
)
ament_package()