-
Notifications
You must be signed in to change notification settings - Fork 324
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
211 lines (184 loc) · 5.63 KB
/
CMakeLists.txt
File metadata and controls
211 lines (184 loc) · 5.63 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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
cmake_minimum_required(VERSION 3.5)
project(ur_controllers)
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra)
endif()
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
find_package(ament_cmake REQUIRED)
find_package(angles REQUIRED)
find_package(controller_interface REQUIRED)
find_package(geometry_msgs REQUIRED)
find_package(joint_trajectory_controller REQUIRED)
find_package(lifecycle_msgs REQUIRED)
find_package(pluginlib REQUIRED)
find_package(rclcpp_lifecycle REQUIRED)
find_package(rcutils REQUIRED)
find_package(realtime_tools REQUIRED)
find_package(std_msgs REQUIRED)
find_package(std_srvs REQUIRED)
find_package(tf2_geometry_msgs REQUIRED)
find_package(tf2_ros REQUIRED)
find_package(ur_dashboard_msgs REQUIRED)
find_package(ur_msgs REQUIRED)
find_package(generate_parameter_library REQUIRED)
find_package(trajectory_msgs REQUIRED)
find_package(control_msgs REQUIRED)
find_package(action_msgs REQUIRED)
set(THIS_PACKAGE_INCLUDE_DEPENDS
angles
controller_interface
geometry_msgs
joint_trajectory_controller
lifecycle_msgs
pluginlib
rclcpp_lifecycle
rcutils
realtime_tools
std_msgs
std_srvs
tf2_geometry_msgs
tf2_ros
ur_dashboard_msgs
ur_msgs
generate_parameter_library
control_msgs
trajectory_msgs
action_msgs
)
include_directories(include)
generate_parameter_library(
tool_contact_controller_parameters
src/tool_contact_controller_parameters.yaml
)
generate_parameter_library(
force_mode_controller_parameters
src/force_mode_controller_parameters.yaml
)
generate_parameter_library(
friction_model_controller_parameters
src/friction_model_controller_parameters.yaml
)
generate_parameter_library(
gpio_controller_parameters
src/gpio_controller_parameters.yaml
)
generate_parameter_library(
speed_scaling_state_broadcaster_parameters
src/speed_scaling_state_broadcaster_parameters.yaml
)
generate_parameter_library(
scaled_joint_trajectory_controller_parameters
src/scaled_joint_trajectory_controller_parameters.yaml
)
generate_parameter_library(
freedrive_mode_controller_parameters
src/freedrive_mode_controller_parameters.yaml
)
generate_parameter_library(
passthrough_trajectory_controller_parameters
src/passthrough_trajectory_controller_parameters.yaml
)
generate_parameter_library(
ur_configuration_controller_parameters
src/ur_configuration_controller_parameters.yaml
)
add_library(${PROJECT_NAME} SHARED
src/tool_contact_controller.cpp
src/force_mode_controller.cpp
src/friction_model_controller.cpp
src/scaled_joint_trajectory_controller.cpp
src/speed_scaling_state_broadcaster.cpp
src/freedrive_mode_controller.cpp
src/gpio_controller.cpp
src/passthrough_trajectory_controller.cpp
src/ur_configuration_controller.cpp)
target_include_directories(${PROJECT_NAME} PRIVATE
include
)
target_link_libraries(${PROJECT_NAME}
tool_contact_controller_parameters
force_mode_controller_parameters
friction_model_controller_parameters
gpio_controller_parameters
speed_scaling_state_broadcaster_parameters
scaled_joint_trajectory_controller_parameters
freedrive_mode_controller_parameters
passthrough_trajectory_controller_parameters
ur_configuration_controller_parameters
${geometry_msgs_TARGETS}
${lifecycle_msgs_TARGETS}
${std_msgs_TARGETS}
${std_srvs_TARGETS}
${tf2_geometry_msgs_TARGETS}
${ur_dashboard_msgs_TARGETS}
${control_msgs_TARGETS}
${trajectory_msgs_TARGETS}
${ur_msgs_TARGETS}
${action_msgs_TARGETS}
angles::angles
controller_interface::controller_interface
joint_trajectory_controller::joint_trajectory_controller
pluginlib::pluginlib
rclcpp_lifecycle::rclcpp_lifecycle
rcutils::rcutils
realtime_tools::realtime_tools
tf2_ros::tf2_ros
)
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
target_compile_options(${PROJECT_NAME} PRIVATE -Wpedantic -Werror)
endif()
# prevent pluginlib from using boost
target_compile_definitions(${PROJECT_NAME} PUBLIC "PLUGINLIB__DISABLE_BOOST_FUNCTIONS")
pluginlib_export_plugin_description_file(controller_interface controller_plugins.xml)
install(TARGETS ${PROJECT_NAME}
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
RUNTIME DESTINATION bin
)
install(DIRECTORY include/
DESTINATION include
)
install(FILES controller_plugins.xml
DESTINATION share/${PROJECT_NAME}
)
ament_export_dependencies(${THIS_PACKAGE_INCLUDE_DEPENDS})
ament_export_include_directories(include)
ament_export_libraries(${PROJECT_NAME})
ament_export_include_directories(
include
)
ament_export_libraries(
${PROJECT_NAME}
)
if(BUILD_TESTING)
find_package(ament_cmake_gmock REQUIRED)
find_package(controller_manager REQUIRED)
find_package(hardware_interface REQUIRED)
find_package(ros2_control_test_assets REQUIRED)
add_definitions(-DTEST_FILES_DIRECTORY="${CMAKE_CURRENT_SOURCE_DIR}/test")
ament_add_gmock(test_load_force_mode_controller
test/test_load_force_mode_controller.cpp
)
target_link_libraries(test_load_force_mode_controller
${PROJECT_NAME}
controller_manager::controller_manager
ros2_control_test_assets::ros2_control_test_assets
)
ament_add_gmock(test_load_freedrive_mode_controller
test/test_load_freedrive_mode_controller.cpp
)
target_link_libraries(test_load_freedrive_mode_controller
${PROJECT_NAME}
controller_manager::controller_manager
ros2_control_test_assets::ros2_control_test_assets
)
ament_add_gmock(test_load_friction_model_controller
test/test_load_friction_model_controller.cpp
)
target_link_libraries(test_load_friction_model_controller
${PROJECT_NAME}
controller_manager::controller_manager
ros2_control_test_assets::ros2_control_test_assets
)
endif()
ament_package()