From 2158cbddef62ac9790f7942267f0bd69557216ef Mon Sep 17 00:00:00 2001 From: Shane Loretz Date: Sat, 8 Feb 2025 00:25:08 +0000 Subject: [PATCH] Use target_link_libraries instead of ament_target_dependencies Signed-off-by: Shane Loretz --- composition/CMakeLists.txt | 65 ++++++++++----------- demo_nodes_cpp_native/CMakeLists.txt | 14 +++-- dummy_robot/dummy_map_server/CMakeLists.txt | 6 +- dummy_robot/dummy_sensors/CMakeLists.txt | 13 +++-- lifecycle/CMakeLists.txt | 24 ++++---- logging_demo/CMakeLists.txt | 23 ++++---- pendulum_control/CMakeLists.txt | 26 ++++----- 7 files changed, 87 insertions(+), 84 deletions(-) diff --git a/composition/CMakeLists.txt b/composition/CMakeLists.txt index db1ab116d..f964c6207 100644 --- a/composition/CMakeLists.txt +++ b/composition/CMakeLists.txt @@ -28,10 +28,10 @@ add_library(talker_component SHARED src/talker_component.cpp) target_compile_definitions(talker_component PRIVATE "COMPOSITION_BUILDING_DLL") -ament_target_dependencies(talker_component - "rclcpp" - "rclcpp_components" - "std_msgs") +target_link_libraries(talker_component PUBLIC + rclcpp::rclcpp + rclcpp_components::component + ${std_msgs_TARGETS}) rclcpp_components_register_nodes(talker_component "composition::Talker") set(node_plugins "${node_plugins}composition::Talker;$\n") @@ -39,10 +39,10 @@ add_library(listener_component SHARED src/listener_component.cpp) target_compile_definitions(listener_component PRIVATE "COMPOSITION_BUILDING_DLL") -ament_target_dependencies(listener_component - "rclcpp" - "rclcpp_components" - "std_msgs") +target_link_libraries(listener_component PUBLIC + rclcpp::rclcpp + rclcpp_components::component + ${std_msgs_TARGETS}) rclcpp_components_register_nodes(listener_component "composition::Listener") set(node_plugins "${node_plugins}composition::Listener;$\n") @@ -50,10 +50,10 @@ add_library(node_like_listener_component SHARED src/node_like_listener_component.cpp) target_compile_definitions(node_like_listener_component PRIVATE "COMPOSITION_BUILDING_DLL") -ament_target_dependencies(node_like_listener_component - "rclcpp" - "rclcpp_components" - "std_msgs") +target_link_libraries(node_like_listener_component PUBLIC + rclcpp::rclcpp + rclcpp_components::component + ${std_msgs_TARGETS}) rclcpp_components_register_nodes(node_like_listener_component "composition::NodeLikeListener") set(node_plugins "${node_plugins}composition::NodeLikeListener;$\n") @@ -61,10 +61,10 @@ add_library(server_component SHARED src/server_component.cpp) target_compile_definitions(server_component PRIVATE "COMPOSITION_BUILDING_DLL") -ament_target_dependencies(server_component - "example_interfaces" - "rclcpp" - "rclcpp_components") +target_link_libraries(server_component PUBLIC + ${example_interfaces_TARGETS} + rclcpp::rclcpp + rclcpp_components::component) rclcpp_components_register_nodes(server_component "composition::Server") set(node_plugins "${node_plugins}composition::Server;$\n") @@ -72,10 +72,10 @@ add_library(client_component SHARED src/client_component.cpp) target_compile_definitions(client_component PRIVATE "COMPOSITION_BUILDING_DLL") -ament_target_dependencies(client_component - "example_interfaces" - "rclcpp" - "rclcpp_components") +target_link_libraries(client_component PUBLIC + ${example_interfaces_TARGETS} + rclcpp::rclcpp + rclcpp_components::component) rclcpp_components_register_nodes(client_component "composition::Client") set(node_plugins "${node_plugins}composition::Client;$\n") @@ -88,13 +88,12 @@ endif() add_executable(manual_composition src/manual_composition.cpp) -target_link_libraries(manual_composition +target_link_libraries(manual_composition PRIVATE talker_component listener_component server_component - client_component) -ament_target_dependencies(manual_composition - "rclcpp") + client_component + rclcpp::rclcpp) add_executable(linktime_composition src/linktime_composition.cpp) @@ -109,18 +108,18 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") ${libs} "-Wl,--as-needed") endif() -target_link_libraries(linktime_composition ${libs}) -ament_target_dependencies(linktime_composition - "class_loader" - "rclcpp" - "rclcpp_components") +target_link_libraries(linktime_composition PRIVATE + ${libs} + class_loader::class_loader + rclcpp::rclcpp + rclcpp_components::component) add_executable(dlopen_composition src/dlopen_composition.cpp) -ament_target_dependencies(dlopen_composition - "class_loader" - "rclcpp" - "rclcpp_components") +target_link_libraries(dlopen_composition PRIVATE + class_loader::class_loader + rclcpp::rclcpp + rclcpp_components::component) install(TARGETS talker_component diff --git a/demo_nodes_cpp_native/CMakeLists.txt b/demo_nodes_cpp_native/CMakeLists.txt index 2bccfe5ff..f127a65a3 100644 --- a/demo_nodes_cpp_native/CMakeLists.txt +++ b/demo_nodes_cpp_native/CMakeLists.txt @@ -30,11 +30,15 @@ add_library(talker_native SHARED src/talker.cpp) target_compile_definitions(talker_native PRIVATE "DEMO_NODES_CPP_NATIVE_BUILDING_DLL") -ament_target_dependencies(talker_native - "rclcpp" - "std_msgs" - "rclcpp_components" - "rmw_fastrtps_cpp") +target_link_libraries(talker_native PUBLIC + rclcpp::rclcpp + ${std_msgs_TARGETS} + rclcpp_components::component) +# TODO(sloretz) use target_link_libraries when rmw_fastrtps_cpp uses modern CMake targets) +target_include_directories(talker_native PRIVATE + ${rmw_fastrtps_cpp_INCLUDE_DIRS}) +target_link_libraries(talker_native PRIVATE + ${rmw_fastrtps_cpp_LIBRARIES}) rclcpp_components_register_node(talker_native PLUGIN "demo_nodes_cpp_native::Talker" EXECUTABLE talker) install(TARGETS talker_native diff --git a/dummy_robot/dummy_map_server/CMakeLists.txt b/dummy_robot/dummy_map_server/CMakeLists.txt index 66576a109..6008bad6b 100644 --- a/dummy_robot/dummy_map_server/CMakeLists.txt +++ b/dummy_robot/dummy_map_server/CMakeLists.txt @@ -17,9 +17,9 @@ find_package(rclcpp REQUIRED) find_package(rmw REQUIRED) add_executable(dummy_map_server src/dummy_map_server.cpp) -ament_target_dependencies(dummy_map_server - "rclcpp" - "nav_msgs" +target_link_libraries(dummy_map_server PRIVATE + rclcpp::rclcpp + ${nav_msgs_TARGETS} ) install(TARGETS dummy_map_server diff --git a/dummy_robot/dummy_sensors/CMakeLists.txt b/dummy_robot/dummy_sensors/CMakeLists.txt index e1ac906e1..2e069dee2 100644 --- a/dummy_robot/dummy_sensors/CMakeLists.txt +++ b/dummy_robot/dummy_sensors/CMakeLists.txt @@ -17,15 +17,16 @@ find_package(rmw REQUIRED) find_package(sensor_msgs REQUIRED) add_executable(dummy_laser src/dummy_laser.cpp) -ament_target_dependencies(dummy_laser - "rclcpp" - "sensor_msgs" +target_link_libraries(dummy_laser PRIVATE + rclcpp::rclcpp + ${sensor_msgs_TARGETS} ) add_executable(dummy_joint_states src/dummy_joint_states.cpp) -ament_target_dependencies(dummy_joint_states - "rclcpp" - "sensor_msgs") +target_link_libraries(dummy_joint_states PRIVATE + rclcpp::rclcpp + ${sensor_msgs_TARGETS} +) install(TARGETS dummy_joint_states dummy_laser diff --git a/lifecycle/CMakeLists.txt b/lifecycle/CMakeLists.txt index f023e6262..b3e835a8a 100644 --- a/lifecycle/CMakeLists.txt +++ b/lifecycle/CMakeLists.txt @@ -21,24 +21,24 @@ find_package(std_msgs REQUIRED) ### demos add_executable(lifecycle_talker src/lifecycle_talker.cpp) -ament_target_dependencies(lifecycle_talker - "lifecycle_msgs" - "rclcpp" - "rclcpp_lifecycle" - "std_msgs" +target_link_libraries(lifecycle_talker PRIVATE + ${lifecycle_msgs_TARGETS} + rclcpp::rclcpp + rclcpp_lifecycle::rclcpp_lifecycle + ${std_msgs_TARGETS} ) add_executable(lifecycle_listener src/lifecycle_listener.cpp) -ament_target_dependencies(lifecycle_listener - "lifecycle_msgs" - "rclcpp" - "std_msgs" +target_link_libraries(lifecycle_listener PRIVATE + ${lifecycle_msgs_TARGETS} + rclcpp::rclcpp + ${std_msgs_TARGETS} ) add_executable(lifecycle_service_client src/lifecycle_service_client.cpp) -ament_target_dependencies(lifecycle_service_client - "lifecycle_msgs" - "rclcpp" +target_link_libraries(lifecycle_service_client PRIVATE + ${lifecycle_msgs_TARGETS} + rclcpp::rclcpp ) install(TARGETS diff --git a/logging_demo/CMakeLists.txt b/logging_demo/CMakeLists.txt index 7df09d989..62a5c7223 100644 --- a/logging_demo/CMakeLists.txt +++ b/logging_demo/CMakeLists.txt @@ -29,30 +29,29 @@ add_library(logger_config_component SHARED src/logger_config_component.cpp) target_compile_definitions(logger_config_component PRIVATE "LOGGING_DEMO_BUILDING_DLL") -ament_target_dependencies(logger_config_component - "rclcpp" - "rclcpp_components") +target_link_libraries(logger_config_component PUBLIC + rclcpp::rclcpp + rclcpp_components::component) rosidl_get_typesupport_target(cpp_typesupport_target "${PROJECT_NAME}" "rosidl_typesupport_cpp") -target_link_libraries(logger_config_component "${cpp_typesupport_target}") +target_link_libraries(logger_config_component PUBLIC "${cpp_typesupport_target}") rclcpp_components_register_nodes(logger_config_component "logging_demo::LoggerConfig") add_library(logger_usage_component SHARED src/logger_usage_component.cpp) target_compile_definitions(logger_usage_component PRIVATE "LOGGING_DEMO_BUILDING_DLL") -ament_target_dependencies(logger_usage_component - "rclcpp" - "rclcpp_components" - "std_msgs") +target_link_libraries(logger_usage_component PUBLIC + rclcpp::rclcpp + rclcpp_components::component + ${std_msgs_TARGETS}) rclcpp_components_register_nodes(logger_usage_component "logging_demo::LoggerUsage") add_executable(logging_demo_main src/logging_demo_main.cpp) -target_link_libraries(logging_demo_main +target_link_libraries(logging_demo_main PRIVATE logger_config_component - logger_usage_component) -ament_target_dependencies(logging_demo_main - "rclcpp") + logger_usage_component + rclcpp::rclcpp) install(TARGETS logger_config_component diff --git a/pendulum_control/CMakeLists.txt b/pendulum_control/CMakeLists.txt index 025ba7d22..6a78b73f8 100644 --- a/pendulum_control/CMakeLists.txt +++ b/pendulum_control/CMakeLists.txt @@ -33,25 +33,25 @@ endif() add_executable(pendulum_demo src/pendulum_demo.cpp) -ament_target_dependencies(pendulum_demo - "pendulum_msgs" - "rclcpp" - "rttest" - "tlsf_cpp") +target_link_libraries(pendulum_demo PRIVATE + ${pendulum_msgs_TARGETS} + rclcpp::rclcpp + rttest::rttest + tlsf_cpp::tlsf_cpp) add_executable(pendulum_logger src/pendulum_logger.cpp) -ament_target_dependencies(pendulum_logger - "pendulum_msgs" - "rclcpp" - "rttest") +target_link_libraries(pendulum_logger PRIVATE + ${pendulum_msgs_TARGETS} + rclcpp::rclcpp + rttest::rttest) add_executable(pendulum_teleop src/pendulum_teleop.cpp) -ament_target_dependencies(pendulum_teleop - "pendulum_msgs" - "rclcpp" - "rttest") +target_link_libraries(pendulum_teleop PRIVATE + ${pendulum_msgs_TARGETS} + rclcpp::rclcpp + rttest::rttest) install(TARGETS pendulum_demo