Skip to content

Commit a8679c4

Browse files
author
Felix Blix Everberg
committed
Transition from ament_target_dependencies to target_link_libraries
Since kilted, the use of ament_target_dependencies has been deprecated. This commit replaces all uses of the macro with target_link_libraries as suggested in the deprecation warning, and does some additional steps in for the ethercat_interface package to ensure exports are done in the "modern" target-based fashion.
1 parent b90c921 commit a8679c4

File tree

6 files changed

+41
-57
lines changed

6 files changed

+41
-57
lines changed

ethercat_driver/CMakeLists.txt

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,17 @@ add_library(
1818
SHARED
1919
src/ethercat_driver.cpp)
2020

21-
target_include_directories(
22-
${PROJECT_NAME}
23-
PRIVATE
24-
include
21+
target_include_directories(${PROJECT_NAME} PRIVATE
22+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
23+
$<INSTALL_INTERFACE:include/${PROJECT_NAME}>
2524
)
2625

27-
ament_target_dependencies(
28-
${PROJECT_NAME}
29-
hardware_interface
30-
pluginlib
31-
rclcpp
32-
rclcpp_lifecycle
33-
ethercat_interface
26+
target_link_libraries(${PROJECT_NAME} PUBLIC
27+
hardware_interface::hardware_interface
28+
pluginlib::pluginlib
29+
rclcpp::rclcpp
30+
rclcpp_lifecycle::rclcpp_lifecycle
31+
ethercat_interface::ethercat_interface
3432
)
3533

3634
# Causes the visibility macros to use dllexport rather than dllimport,

ethercat_driver_ros2/sphinx/developer_guide/new_plugin.rst

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -137,10 +137,9 @@ Modify your :code:`CMakeLists.txt` file so that it looks like this:
137137
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
138138
$<INSTALL_INTERFACE:include>
139139
)
140-
ament_target_dependencies(
141-
${PROJECT_NAME}
142-
"ethercat_interface"
143-
"pluginlib"
140+
target_link_libraries(${PROJECT_NAME} PUBLIC
141+
ethercat_interface::ethercat_interface
142+
pluginlib::pluginlib
144143
)
145144
pluginlib_export_plugin_description_file(ethercat_interface ethercat_plugins.xml)
146145
install(

ethercat_generic_plugins/ethercat_generic_cia402_drive/CMakeLists.txt

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,11 @@ target_compile_features(${PROJECT_NAME} PUBLIC c_std_99 cxx_std_17) # Require C
2626
target_include_directories(${PROJECT_NAME} PUBLIC
2727
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
2828
$<INSTALL_INTERFACE:include>)
29-
target_link_libraries(${PROJECT_NAME} yaml-cpp)
3029

31-
32-
ament_target_dependencies(
33-
${PROJECT_NAME}
34-
ethercat_interface
35-
ethercat_generic_slave
36-
pluginlib
37-
yaml_cpp_vendor
30+
target_link_libraries(${PROJECT_NAME} PUBLIC
31+
ethercat_interface::ethercat_interface
32+
ethercat_generic_slave::ethercat_generic_slave
33+
pluginlib::pluginlib
3834
yaml-cpp
3935
)
4036

ethercat_generic_plugins/ethercat_generic_slave/CMakeLists.txt

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,9 @@ target_compile_features(${PROJECT_NAME} PUBLIC c_std_99 cxx_std_17) # Require C
2525
target_include_directories(${PROJECT_NAME} PUBLIC
2626
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
2727
$<INSTALL_INTERFACE:include>)
28-
ament_target_dependencies(
29-
${PROJECT_NAME}
30-
ethercat_interface
31-
pluginlib
32-
yaml_cpp_vendor
33-
yaml-cpp
34-
)
35-
target_link_libraries(${PROJECT_NAME}
28+
target_link_libraries(${PROJECT_NAME} PUBLIC
29+
ethercat_interface::ethercat_interface
30+
pluginlib::pluginlib
3631
yaml-cpp
3732
)
3833

@@ -70,7 +65,10 @@ if(BUILD_TESTING)
7065
test_generic_ec_slave
7166
test/test_generic_ec_slave.cpp
7267
)
73-
target_include_directories(test_generic_ec_slave PRIVATE include)
68+
target_include_directories(test_generic_ec_slave PRIVATE
69+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
70+
$<INSTALL_INTERFACE:include/${PROJECT_NAME}>
71+
)
7472
target_link_libraries(test_generic_ec_slave
7573
${PROJECT_NAME}
7674
)

ethercat_interface/CMakeLists.txt

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -23,38 +23,34 @@ set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
2323

2424
find_library(ETHERCAT_LIB ethercat HINTS ${ETHERLAB_DIR}/lib)
2525

26-
ament_export_include_directories(
27-
include
28-
${ETHERLAB_DIR}/include
29-
)
30-
3126
add_library(
3227
${PROJECT_NAME}
3328
SHARED
3429
src/ec_master.cpp)
3530

36-
target_include_directories(
37-
${PROJECT_NAME}
38-
PRIVATE
39-
include
31+
target_include_directories(${PROJECT_NAME} PUBLIC
32+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
33+
$<INSTALL_INTERFACE:include/${PROJECT_NAME}>
4034
${ETHERLAB_DIR}/include
4135
)
4236

43-
target_link_libraries(${PROJECT_NAME} ${ETHERCAT_LIB})
44-
45-
ament_target_dependencies(
46-
${PROJECT_NAME}
47-
rclcpp
37+
target_link_libraries(${PROJECT_NAME}
38+
${ETHERCAT_LIB}
39+
rclcpp::rclcpp
4840
)
4941

5042
# INSTALL
5143
install(
5244
TARGETS ${PROJECT_NAME}
53-
DESTINATION lib
45+
EXPORT export_${PROJECT_NAME}
46+
LIBRARY DESTINATION lib
47+
ARCHIVE DESTINATION lib
48+
RUNTIME DESTINATION bin
5449
)
50+
5551
install(
5652
DIRECTORY include/
57-
DESTINATION include
53+
DESTINATION include/${PROJECT_NAME}
5854
)
5955

6056
if(BUILD_TESTING)
@@ -79,13 +75,7 @@ if(BUILD_TESTING)
7975
endif()
8076

8177
## EXPORTS
82-
ament_export_include_directories(
83-
include
84-
)
85-
ament_export_libraries(
86-
${PROJECT_NAME}
87-
${ETHERCAT_LIBRARY}
88-
)
78+
ament_export_targets(export_${PROJECT_NAME} HAS_LIBRARY_TARGET)
8979
ament_export_dependencies(
9080
rclcpp
9181
)

ethercat_manager/CMakeLists.txt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,11 @@ target_include_directories(
3131
include
3232
${ETHERLAB_DIR}/include
3333
)
34-
target_link_libraries(ethercat_sdo_srv_server ${ETHERCAT_LIB})
35-
ament_target_dependencies(ethercat_sdo_srv_server rclcpp ethercat_msgs)
34+
target_link_libraries(ethercat_sdo_srv_server PUBLIC
35+
${ETHERCAT_LIB}
36+
rclcpp::rclcpp
37+
${ethercat_msgs_TARGETS}
38+
)
3639

3740
if(BUILD_TESTING)
3841
find_package(ament_lint_auto REQUIRED)

0 commit comments

Comments
 (0)