diff --git a/tf2_ros/CMakeLists.txt b/tf2_ros/CMakeLists.txt index 0e5817a1f..200424f54 100644 --- a/tf2_ros/CMakeLists.txt +++ b/tf2_ros/CMakeLists.txt @@ -10,14 +10,26 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") endif() find_package(ament_cmake REQUIRED) +find_package(builtin_interfaces REQUIRED) find_package(geometry_msgs REQUIRED) find_package(message_filters REQUIRED) +find_package(rcl_interfaces REQUIRED) find_package(rclcpp REQUIRED) find_package(rclcpp_action REQUIRED) find_package(rclcpp_components REQUIRED) find_package(tf2 REQUIRED) find_package(tf2_msgs REQUIRED) +set(dependencies + builtin_interfaces + geometry_msgs + message_filters + rclcpp + rclcpp_action + tf2 + tf2_msgs +) + # tf2_ros library add_library(${PROJECT_NAME} SHARED src/buffer.cpp @@ -32,12 +44,7 @@ target_include_directories(${PROJECT_NAME} PUBLIC "$" "$") ament_target_dependencies(${PROJECT_NAME} - "geometry_msgs" - "message_filters" - "rclcpp" - "rclcpp_action" - "tf2" - "tf2_msgs" + ${dependencies} ) target_compile_definitions(${PROJECT_NAME} PRIVATE "TF2_ROS_BUILDING_DLL") @@ -48,12 +55,24 @@ target_link_libraries(buffer_server ${PROJECT_NAME} ) ament_target_dependencies(buffer_server + ${dependencies} +) + +add_library(static_transform_broadcaster_node SHARED + src/static_transform_broadcaster_node.cpp +) +target_compile_definitions(static_transform_broadcaster_node PRIVATE "STATIC_TRANSFORM_BROADCASTER_BUILDING_DLL") +target_include_directories(static_transform_broadcaster_node PUBLIC + "$" + "$") +target_link_libraries(static_transform_broadcaster_node ${PROJECT_NAME}) +ament_target_dependencies(static_transform_broadcaster_node "geometry_msgs" "rclcpp" - "rclcpp_action" - "tf2" + "rclcpp_components" "tf2_msgs" ) +rclcpp_components_register_nodes(static_transform_broadcaster_node "tf2_ros::StaticTransformBroadcasterNode") # static_transform_publisher add_executable(static_transform_publisher @@ -66,25 +85,10 @@ target_link_libraries(static_transform_publisher ament_target_dependencies(static_transform_publisher "geometry_msgs" "rclcpp" + "tf2" "tf2_msgs" ) -add_library(static_transform_broadcaster_node SHARED - src/static_transform_broadcaster_node.cpp -) -target_compile_definitions(static_transform_broadcaster_node PRIVATE "STATIC_TRANSFORM_BROADCASTER_BUILDING_DLL") -target_include_directories(static_transform_broadcaster_node PUBLIC - "$" - "$") -target_link_libraries(static_transform_broadcaster_node ${PROJECT_NAME}) -ament_target_dependencies(static_transform_broadcaster_node - "geometry_msgs" - "rclcpp" - "rclcpp_components" - "tf2_msgs" -) -rclcpp_components_register_nodes(static_transform_broadcaster_node "tf2_ros::StaticTransformBroadcasterNode") - add_executable(tf2_echo src/tf2_echo.cpp ) @@ -92,7 +96,9 @@ target_link_libraries(tf2_echo ${PROJECT_NAME} ) ament_target_dependencies(tf2_echo + "geometry_msgs" "rclcpp" + "tf2" ) add_executable(tf2_monitor @@ -102,8 +108,7 @@ target_link_libraries(tf2_monitor ${PROJECT_NAME} ) ament_target_dependencies(tf2_monitor - "rclcpp" - "tf2_msgs" + ${dependencies} ) # Install rules @@ -138,37 +143,62 @@ install(DIRECTORY include/${PROJECT_NAME}/ if(BUILD_TESTING) find_package(ament_cmake_gtest REQUIRED) ament_add_gtest(test_buffer test/test_buffer.cpp) + ament_target_dependencies(test_buffer + ${dependencies} + ) target_link_libraries(test_buffer ${PROJECT_NAME}) ament_add_gtest(test_buffer_server test/test_buffer_server.cpp) + ament_target_dependencies(test_buffer_server + ${dependencies} + ) target_link_libraries(test_buffer_server ${PROJECT_NAME}) ament_add_gtest(test_buffer_client test/test_buffer_client.cpp) + ament_target_dependencies(test_buffer_client + ${dependencies} + ) target_link_libraries(test_buffer_client ${PROJECT_NAME}) # Adds a tf2_ros message_filter unittest that uses # multiple target frames and a non-zero time tolerance ament_add_gtest(${PROJECT_NAME}_test_message_filter test/message_filter_test.cpp) + ament_target_dependencies(${PROJECT_NAME}_test_message_filter + ${dependencies} + ) target_link_libraries(${PROJECT_NAME}_test_message_filter ${PROJECT_NAME}) ament_add_gtest(${PROJECT_NAME}_test_transform_listener test/test_transform_listener.cpp) + ament_target_dependencies(${PROJECT_NAME}_test_transform_listener + ${dependencies} + ) target_link_libraries(${PROJECT_NAME}_test_transform_listener ${PROJECT_NAME}) ament_add_gtest(${PROJECT_NAME}_test_static_transform_broadcaster test/test_static_transform_broadcaster.cpp) + ament_target_dependencies(${PROJECT_NAME}_test_static_transform_broadcaster + rclcpp + ) target_link_libraries(${PROJECT_NAME}_test_static_transform_broadcaster ${PROJECT_NAME}) ament_add_gtest(${PROJECT_NAME}_test_transform_broadcaster test/test_transform_broadcaster.cpp) + ament_target_dependencies(${PROJECT_NAME}_test_transform_broadcaster + rclcpp + ) target_link_libraries(${PROJECT_NAME}_test_transform_broadcaster ${PROJECT_NAME}) ament_add_gtest(${PROJECT_NAME}_test_time_reset test/time_reset_test.cpp) ament_target_dependencies(${PROJECT_NAME}_test_time_reset - rclcpp + ${dependencies} + rosgraph_msgs ) target_link_libraries(${PROJECT_NAME}_test_time_reset ${PROJECT_NAME}) ament_add_gtest(${PROJECT_NAME}_test_listener test/listener_unittest.cpp) ament_target_dependencies(${PROJECT_NAME}_test_listener + builtin_interfaces + geometry_msgs rclcpp + tf2 ) target_link_libraries(${PROJECT_NAME}_test_listener ${PROJECT_NAME}) @@ -177,5 +207,9 @@ endif() ament_export_include_directories(include) ament_export_libraries(${PROJECT_NAME} static_transform_broadcaster_node) ament_export_targets(${PROJECT_NAME} static_transform_broadcaster_node) -ament_export_dependencies(geometry_msgs message_filters rclcpp rclcpp_action rclcpp_components tf2 tf2_msgs) +ament_export_dependencies( + ${dependencies} + rcl_interfaces + rclcpp_components +) ament_package() diff --git a/tf2_ros/package.xml b/tf2_ros/package.xml index 83e16b088..9efeb8ae4 100644 --- a/tf2_ros/package.xml +++ b/tf2_ros/package.xml @@ -13,8 +13,10 @@ ament_cmake + builtin_interfaces geometry_msgs message_filters + rcl_interfaces rclcpp rclcpp_action rclcpp_components