Skip to content

Commit 210bb1c

Browse files
authored
Use target_link_libraries instead of ament_target_dependencies (#2266)
1 parent c3e8082 commit 210bb1c

File tree

8 files changed

+117
-90
lines changed

8 files changed

+117
-90
lines changed

controller_interface/CMakeLists.txt

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,11 @@ target_include_directories(controller_interface PUBLIC
2828
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
2929
$<INSTALL_INTERFACE:include/controller_interface>
3030
)
31-
ament_target_dependencies(controller_interface PUBLIC ${THIS_PACKAGE_INCLUDE_DEPENDS})
31+
target_link_libraries(controller_interface PUBLIC
32+
hardware_interface::hardware_interface
33+
rclcpp_lifecycle::rclcpp_lifecycle
34+
realtime_tools::realtime_tools
35+
fmt::fmt)
3236

3337
if(BUILD_TESTING)
3438
find_package(ament_cmake_gmock REQUIRED)
@@ -71,18 +75,14 @@ if(BUILD_TESTING)
7175
controller_interface
7276
hardware_interface::hardware_interface
7377
)
74-
ament_target_dependencies(test_imu_sensor
75-
sensor_msgs
76-
)
78+
target_link_libraries(test_imu_sensor ${sensor_msgs_TARGETS})
7779

7880
ament_add_gmock(test_pose_sensor test/test_pose_sensor.cpp)
7981
target_link_libraries(test_pose_sensor
8082
controller_interface
8183
hardware_interface::hardware_interface
8284
)
83-
ament_target_dependencies(test_pose_sensor
84-
geometry_msgs
85-
)
85+
target_link_libraries(test_pose_sensor ${geometry_msgs_TARGETS})
8686
ament_add_gmock(test_gps_sensor test/test_gps_sensor.cpp)
8787
target_link_libraries(test_gps_sensor
8888
controller_interface
@@ -104,9 +104,7 @@ if(BUILD_TESTING)
104104
controller_interface
105105
hardware_interface::hardware_interface
106106
)
107-
ament_target_dependencies(test_led_rgb_device
108-
std_msgs
109-
)
107+
target_link_libraries(test_led_rgb_device ${std_msgs_TARGETS})
110108
endif()
111109

112110
install(

controller_manager/CMakeLists.txt

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,18 @@ target_include_directories(controller_manager PUBLIC
4141
$<INSTALL_INTERFACE:include/controller_manager>
4242
)
4343
target_link_libraries(controller_manager PUBLIC
44-
controller_manager_parameters
45-
)
46-
ament_target_dependencies(controller_manager PUBLIC ${THIS_PACKAGE_INCLUDE_DEPENDS})
44+
controller_manager_parameters
45+
controller_interface::controller_interface
46+
diagnostic_updater::diagnostic_updater
47+
hardware_interface::hardware_interface
48+
pluginlib::pluginlib
49+
rclcpp::rclcpp
50+
rclcpp_lifecycle::rclcpp_lifecycle
51+
realtime_tools::realtime_tools
52+
libstatistics_collector::libstatistics_collector
53+
fmt::fmt
54+
${std_msgs_TARGETS}
55+
${controller_manager_msgs_TARGETS})
4756

4857
add_executable(ros2_control_node src/ros2_control_node.cpp)
4958
target_link_libraries(ros2_control_node PRIVATE
@@ -57,8 +66,9 @@ if(BUILD_TESTING)
5766

5867
# Plugin Libraries that are built and installed for use in testing
5968
add_library(test_controller SHARED test/test_controller/test_controller.cpp)
60-
target_link_libraries(test_controller PUBLIC controller_manager)
61-
ament_target_dependencies(test_controller PUBLIC example_interfaces)
69+
target_link_libraries(test_controller PUBLIC
70+
controller_manager
71+
${example_interfaces_TARGETS})
6272
pluginlib_export_plugin_description_file(controller_interface test/test_controller/test_controller.xml)
6373
install(
6474
TARGETS test_controller
@@ -79,8 +89,9 @@ if(BUILD_TESTING)
7989
add_library(test_chainable_controller SHARED
8090
test/test_chainable_controller/test_chainable_controller.cpp
8191
)
82-
ament_target_dependencies(test_chainable_controller PUBLIC realtime_tools)
83-
target_link_libraries(test_chainable_controller PUBLIC controller_manager)
92+
target_link_libraries(test_chainable_controller PUBLIC
93+
controller_manager
94+
realtime_tools::realtime_tools)
8495
pluginlib_export_plugin_description_file(
8596
controller_interface test/test_chainable_controller/test_chainable_controller.xml)
8697
install(
@@ -147,21 +158,17 @@ if(BUILD_TESTING)
147158
test_controller
148159
test_chainable_controller
149160
ros2_control_test_assets::ros2_control_test_assets
161+
${controller_manager_msgs_TARGETS}
150162
)
151163
set_tests_properties(test_controller_manager_srvs PROPERTIES TIMEOUT 120)
152-
ament_target_dependencies(test_controller_manager_srvs
153-
controller_manager_msgs
154-
)
155164
ament_add_gmock(test_controller_manager_urdf_passing
156165
test/test_controller_manager_urdf_passing.cpp
157166
)
158167
target_link_libraries(test_controller_manager_urdf_passing
159168
controller_manager
160169
test_controller
161170
ros2_control_test_assets::ros2_control_test_assets
162-
)
163-
ament_target_dependencies(test_controller_manager_urdf_passing
164-
controller_manager_msgs
171+
${controller_manager_msgs_TARGETS}
165172
)
166173

167174
add_library(test_controller_with_interfaces SHARED
@@ -218,9 +225,7 @@ if(BUILD_TESTING)
218225
controller_manager
219226
test_controller
220227
ros2_control_test_assets::ros2_control_test_assets
221-
)
222-
ament_target_dependencies(test_hardware_management_srvs
223-
controller_manager_msgs
228+
${controller_manager_msgs_TARGETS}
224229
)
225230

226231
find_package(ament_cmake_pytest REQUIRED)

hardware_interface/CMakeLists.txt

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,23 @@ target_compile_features(hardware_interface PUBLIC cxx_std_17)
4040
target_include_directories(hardware_interface PUBLIC
4141
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
4242
$<INSTALL_INTERFACE:include/hardware_interface>
43+
${pal_statistics_INCLUDE_DIRS}
4344
)
44-
target_link_libraries(hardware_interface PUBLIC fmt::fmt)
45-
ament_target_dependencies(hardware_interface PUBLIC ${THIS_PACKAGE_INCLUDE_DEPENDS})
45+
target_link_libraries(hardware_interface PUBLIC
46+
rclcpp::rclcpp
47+
rclcpp_lifecycle::rclcpp_lifecycle
48+
pluginlib::pluginlib
49+
urdf::urdf
50+
realtime_tools::realtime_tools
51+
rcutils::rcutils
52+
rcpputils::rcpputils
53+
${joint_limits_TARGETS}
54+
${TinyXML2_LIBRARIES}
55+
${tinyxml2_vendor_LIBRARIES}
56+
${pal_statistics_LIBRARIES}
57+
${control_msgs_TARGETS}
58+
${lifecycle_msgs_TARGETS}
59+
fmt::fmt)
4660

4761
add_library(mock_components SHARED
4862
src/mock_components/generic_system.cpp
@@ -53,7 +67,6 @@ target_include_directories(mock_components PUBLIC
5367
$<INSTALL_INTERFACE:include/hardware_interface>
5468
)
5569
target_link_libraries(mock_components PUBLIC hardware_interface)
56-
ament_target_dependencies(mock_components PUBLIC ${THIS_PACKAGE_INCLUDE_DEPENDS})
5770

5871
pluginlib_export_plugin_description_file(
5972
hardware_interface mock_components_plugin_description.xml)
@@ -65,31 +78,26 @@ if(BUILD_TESTING)
6578

6679
ament_add_gmock(test_macros test/test_macros.cpp)
6780
target_include_directories(test_macros PRIVATE include)
68-
ament_target_dependencies(test_macros rcpputils)
81+
target_link_libraries(test_macros rcpputils::rcpputils)
6982

7083
ament_add_gmock(test_inst_hardwares test/test_inst_hardwares.cpp)
71-
target_link_libraries(test_inst_hardwares hardware_interface)
72-
ament_target_dependencies(test_inst_hardwares rcpputils)
84+
target_link_libraries(test_inst_hardwares hardware_interface rcpputils::rcpputils)
7385

7486
ament_add_gmock(test_joint_handle test/test_handle.cpp)
75-
target_link_libraries(test_joint_handle hardware_interface)
76-
ament_target_dependencies(test_joint_handle rcpputils)
87+
target_link_libraries(test_joint_handle hardware_interface rcpputils::rcpputils)
7788

7889
# Test helper methods
7990
ament_add_gmock(test_helpers test/test_helpers.cpp)
8091
target_link_libraries(test_helpers hardware_interface)
8192

8293
ament_add_gmock(test_component_interfaces test/test_component_interfaces.cpp)
83-
target_link_libraries(test_component_interfaces hardware_interface)
84-
ament_target_dependencies(test_component_interfaces ros2_control_test_assets)
94+
target_link_libraries(test_component_interfaces hardware_interface ros2_control_test_assets::ros2_control_test_assets)
8595

8696
ament_add_gmock(test_component_interfaces_custom_export test/test_component_interfaces_custom_export.cpp)
87-
target_link_libraries(test_component_interfaces_custom_export hardware_interface)
88-
ament_target_dependencies(test_component_interfaces_custom_export ros2_control_test_assets)
97+
target_link_libraries(test_component_interfaces_custom_export hardware_interface ros2_control_test_assets::ros2_control_test_assets)
8998

9099
ament_add_gmock(test_component_parser test/test_component_parser.cpp)
91-
target_link_libraries(test_component_parser hardware_interface)
92-
ament_target_dependencies(test_component_parser ros2_control_test_assets)
100+
target_link_libraries(test_component_parser hardware_interface ros2_control_test_assets::ros2_control_test_assets)
93101

94102
add_library(test_hardware_components SHARED
95103
test/test_hardware_components/test_single_joint_actuator.cpp
@@ -99,8 +107,6 @@ if(BUILD_TESTING)
99107
test/test_hardware_components/test_system_with_command_modes.cpp
100108
)
101109
target_link_libraries(test_hardware_components hardware_interface)
102-
ament_target_dependencies(test_hardware_components
103-
pluginlib)
104110
install(TARGETS test_hardware_components
105111
DESTINATION lib
106112
)
@@ -110,11 +116,7 @@ if(BUILD_TESTING)
110116

111117
ament_add_gmock(test_generic_system test/mock_components/test_generic_system.cpp)
112118
target_include_directories(test_generic_system PRIVATE include)
113-
target_link_libraries(test_generic_system hardware_interface)
114-
ament_target_dependencies(test_generic_system
115-
pluginlib
116-
ros2_control_test_assets
117-
)
119+
target_link_libraries(test_generic_system hardware_interface ros2_control_test_assets::ros2_control_test_assets)
118120
endif()
119121

120122
install(

hardware_interface_testing/CMakeLists.txt

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ set_compiler_options()
66
export_windows_symbols()
77

88
set(THIS_PACKAGE_INCLUDE_DEPENDS
9-
control_msgs
109
hardware_interface
1110
lifecycle_msgs
1211
pluginlib
@@ -21,11 +20,17 @@ foreach(Dependency IN ITEMS ${THIS_PACKAGE_INCLUDE_DEPENDS})
2120
endforeach()
2221

2322
add_library(test_components SHARED
24-
test/test_components/test_actuator.cpp
25-
test/test_components/test_sensor.cpp
26-
test/test_components/test_system.cpp
27-
test/test_components/test_actuator_exclusive_interfaces.cpp)
28-
ament_target_dependencies(test_components hardware_interface pluginlib ros2_control_test_assets)
23+
test/test_components/test_actuator.cpp
24+
test/test_components/test_sensor.cpp
25+
test/test_components/test_system.cpp
26+
test/test_components/test_actuator_exclusive_interfaces.cpp)
27+
28+
target_link_libraries(test_components
29+
hardware_interface::hardware_interface
30+
rclcpp_lifecycle::rclcpp_lifecycle
31+
ros2_control_test_assets::ros2_control_test_assets
32+
pluginlib::pluginlib
33+
fmt::fmt)
2934
install(TARGETS test_components
3035
DESTINATION lib
3136
)
@@ -37,11 +42,18 @@ if(BUILD_TESTING)
3742
find_package(ament_cmake_gmock REQUIRED)
3843

3944
ament_add_gmock(test_resource_manager test/test_resource_manager.cpp)
40-
target_link_libraries(test_resource_manager)
41-
ament_target_dependencies(test_resource_manager hardware_interface ros2_control_test_assets)
45+
target_link_libraries(test_resource_manager
46+
hardware_interface::hardware_interface
47+
rclcpp_lifecycle::rclcpp_lifecycle
48+
ros2_control_test_assets::ros2_control_test_assets
49+
${lifecycle_msgs_TARGETS})
4250

4351
ament_add_gmock(test_resource_manager_prepare_perform_switch test/test_resource_manager_prepare_perform_switch.cpp)
44-
ament_target_dependencies(test_resource_manager_prepare_perform_switch hardware_interface ros2_control_test_assets)
52+
target_link_libraries(test_resource_manager_prepare_perform_switch
53+
hardware_interface::hardware_interface
54+
rclcpp_lifecycle::rclcpp_lifecycle
55+
ros2_control_test_assets::ros2_control_test_assets
56+
${lifecycle_msgs_TARGETS})
4557

4658
endif()
4759

joint_limits/CMakeLists.txt

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,12 @@ target_include_directories(joint_limits INTERFACE
2828
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
2929
$<INSTALL_INTERFACE:include/joint_limits>
3030
)
31-
ament_target_dependencies(joint_limits INTERFACE ${THIS_PACKAGE_INCLUDE_DEPENDS})
31+
target_link_libraries(joint_limits INTERFACE
32+
rclcpp::rclcpp
33+
rclcpp_lifecycle::rclcpp_lifecycle
34+
urdf::urdf
35+
realtime_tools::realtime_tools
36+
fmt::fmt)
3237

3338
add_library(joint_limiter_interface SHARED
3439
src/joint_limiter_interface.cpp
@@ -38,7 +43,10 @@ target_include_directories(joint_limiter_interface PUBLIC
3843
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
3944
$<INSTALL_INTERFACE:include/joint_limits>
4045
)
41-
ament_target_dependencies(joint_limiter_interface PUBLIC ${THIS_PACKAGE_INCLUDE_DEPENDS})
46+
target_link_libraries(joint_limiter_interface PUBLIC
47+
joint_limits
48+
pluginlib::pluginlib
49+
${trajectory_msgs_TARGETS})
4250

4351
add_library(joint_limits_helpers SHARED
4452
src/joint_limits_helpers.cpp
@@ -48,7 +56,7 @@ target_include_directories(joint_limits_helpers PUBLIC
4856
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
4957
$<INSTALL_INTERFACE:include/joint_limits>
5058
)
51-
ament_target_dependencies(joint_limits_helpers PUBLIC ${THIS_PACKAGE_INCLUDE_DEPENDS})
59+
target_link_libraries(joint_limits_helpers PUBLIC joint_limits)
5260

5361
add_library(joint_saturation_limiter SHARED
5462
src/joint_saturation_limiter.cpp
@@ -60,9 +68,9 @@ target_include_directories(joint_saturation_limiter PUBLIC
6068
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
6169
$<INSTALL_INTERFACE:include/joint_limits>
6270
)
63-
target_link_libraries(joint_saturation_limiter PUBLIC joint_limits_helpers)
64-
65-
ament_target_dependencies(joint_saturation_limiter PUBLIC ${THIS_PACKAGE_INCLUDE_DEPENDS})
71+
target_link_libraries(joint_saturation_limiter PUBLIC
72+
joint_limits_helpers
73+
joint_limiter_interface)
6674

6775
pluginlib_export_plugin_description_file(joint_limits joint_limiters.xml)
6876

@@ -96,30 +104,24 @@ if(BUILD_TESTING)
96104
${CMAKE_CURRENT_SOURCE_DIR}/test/joint_saturation_limiter_param.yaml
97105
)
98106
target_include_directories(test_joint_saturation_limiter PRIVATE include)
99-
target_link_libraries(test_joint_saturation_limiter joint_limiter_interface)
100-
ament_target_dependencies(
101-
test_joint_saturation_limiter
102-
pluginlib
103-
rclcpp
104-
)
107+
target_link_libraries(test_joint_saturation_limiter
108+
joint_limiter_interface
109+
pluginlib::pluginlib
110+
rclcpp::rclcpp)
105111

106112
ament_add_gmock(test_joint_range_limiter test/test_joint_range_limiter.cpp)
107113
target_include_directories(test_joint_range_limiter PRIVATE include)
108-
target_link_libraries(test_joint_range_limiter joint_limiter_interface)
109-
ament_target_dependencies(
110-
test_joint_range_limiter
111-
pluginlib
112-
rclcpp
113-
)
114+
target_link_libraries(test_joint_range_limiter
115+
joint_limiter_interface
116+
pluginlib::pluginlib
117+
rclcpp::rclcpp)
114118

115119
ament_add_gmock(test_joint_soft_limiter test/test_joint_soft_limiter.cpp)
116120
target_include_directories(test_joint_soft_limiter PRIVATE include)
117-
target_link_libraries(test_joint_soft_limiter joint_limiter_interface)
118-
ament_target_dependencies(
119-
test_joint_soft_limiter
120-
pluginlib
121-
rclcpp
122-
)
121+
target_link_libraries(test_joint_soft_limiter
122+
joint_limiter_interface
123+
pluginlib::pluginlib
124+
rclcpp::rclcpp)
123125

124126
endif()
125127

joint_limits/include/joint_limits/joint_saturation_limiter.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class JointSaturationLimiter : public JointLimiterInterface<JointLimitsStateData
4141
JointSaturationLimiter();
4242

4343
/** \brief Destructor */
44-
~JointSaturationLimiter();
44+
virtual ~JointSaturationLimiter();
4545

4646
bool on_init() override { return true; }
4747

joint_limits/include/joint_limits/joint_soft_limiter.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ namespace joint_limits
3030
class JointSoftLimiter : public JointSaturationLimiter<JointControlInterfacesData>
3131
{
3232
public:
33+
virtual ~JointSoftLimiter() = default;
34+
3335
bool on_init() override
3436
{
3537
const bool result = (number_of_joints_ == 1);

0 commit comments

Comments
 (0)