diff --git a/rclcpp/CMakeLists.txt b/rclcpp/CMakeLists.txt index 5d68977..f4c5363 100644 --- a/rclcpp/CMakeLists.txt +++ b/rclcpp/CMakeLists.txt @@ -9,6 +9,7 @@ find_package(rmw REQUIRED) find_package(rmw_implementation REQUIRED) find_package(rmw_implementation_cmake REQUIRED) find_package(rosidl_generator_cpp REQUIRED) +find_package(rosidl_typesupport_cpp REQUIRED) if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-std=c++11") @@ -54,7 +55,8 @@ macro(target) ${${PROJECT_NAME}_SRCS}) ament_target_dependencies(${PROJECT_NAME}${target_suffix} "rcl${target_suffix}" - "rosidl_generator_cpp") + "rosidl_generator_cpp" + "rosidl_typesupport_cpp") # Causes the visibility macros to use dllexport rather than dllimport, # which is appropriate when building the dll but not consuming it. @@ -74,6 +76,7 @@ call_for_each_rmw_implementation(target GENERATE_DEFAULT) ament_export_dependencies(ament_cmake) ament_export_dependencies(rcl) ament_export_dependencies(rosidl_generator_cpp) +ament_export_dependencies(rosidl_typesupport_cpp) ament_export_include_directories(include) @@ -89,6 +92,7 @@ if(BUILD_TESTING) ${rcl_interfaces_INCLUDE_DIRS} ${rmw_INCLUDE_DIRS} ${rosidl_generator_cpp_INCLUDE_DIRS} + ${rosidl_typesupport_cpp_INCLUDE_DIRS} ) endif() ament_add_gtest(test_mapped_ring_buffer test/test_mapped_ring_buffer.cpp) @@ -98,6 +102,7 @@ if(BUILD_TESTING) ${rcl_interfaces_INCLUDE_DIRS} ${rmw_INCLUDE_DIRS} ${rosidl_generator_cpp_INCLUDE_DIRS} + ${rosidl_typesupport_cpp_INCLUDE_DIRS} ) endif() ament_add_gtest(test_intra_process_manager test/test_intra_process_manager.cpp) @@ -107,6 +112,7 @@ if(BUILD_TESTING) ${rcl_interfaces_INCLUDE_DIRS} ${rmw_INCLUDE_DIRS} ${rosidl_generator_cpp_INCLUDE_DIRS} + ${rosidl_typesupport_cpp_INCLUDE_DIRS} ) endif() ament_add_gtest(test_rate test/test_rate.cpp @@ -116,6 +122,7 @@ if(BUILD_TESTING) ${rcl_interfaces_INCLUDE_DIRS} ${rmw_INCLUDE_DIRS} ${rosidl_generator_cpp_INCLUDE_DIRS} + ${rosidl_typesupport_cpp_INCLUDE_DIRS} ) target_link_libraries(test_rate ${PROJECT_NAME} @@ -139,7 +146,13 @@ if(BUILD_TESTING) ${mock_msg_files} SKIP_INSTALL) - ament_add_gtest(test_externally_defined_services test/test_externally_defined_services.cpp) + set(append_library_dirs "${CMAKE_CURRENT_BINARY_DIR}") + if(WIN32) + set(append_library_dirs "${append_library_dirs}/$") + endif() + + ament_add_gtest(test_externally_defined_services test/test_externally_defined_services.cpp + APPEND_LIBRARY_DIRS "${append_library_dirs}") if(TARGET test_externally_defined_services) target_include_directories(test_externally_defined_services PUBLIC ${rcl_INCLUDE_DIRS} diff --git a/rclcpp/cmake/get_rclcpp_information.cmake b/rclcpp/cmake/get_rclcpp_information.cmake index eb26bd4..0eb00ad 100644 --- a/rclcpp/cmake/get_rclcpp_information.cmake +++ b/rclcpp/cmake/get_rclcpp_information.cmake @@ -69,7 +69,8 @@ macro(get_rclcpp_information rmw_implementation var_prefix) set(_exported_dependencies "rcl_interfaces" "rcl${target_suffix}" - "rosidl_generator_cpp") + "rosidl_generator_cpp" + "rosidl_typesupport_cpp") set(${var_prefix}_DEFINITIONS) foreach(_dep ${_exported_dependencies}) if(NOT ${_dep}_FOUND) diff --git a/rclcpp/include/rclcpp/client.hpp b/rclcpp/include/rclcpp/client.hpp index dfc28f3..1dbfe9f 100644 --- a/rclcpp/include/rclcpp/client.hpp +++ b/rclcpp/include/rclcpp/client.hpp @@ -132,7 +132,7 @@ public: rcl_client_options_t & client_options) : ClientBase(parent_node, service_name) { - using rosidl_generator_cpp::get_service_type_support_handle; + using rosidl_typesupport_cpp::get_service_type_support_handle; auto service_type_support_handle = get_service_type_support_handle(); if (rcl_client_init(&client_handle_, this->get_rcl_node_handle(), diff --git a/rclcpp/include/rclcpp/publisher.hpp b/rclcpp/include/rclcpp/publisher.hpp index f03b26d..78b5f21 100644 --- a/rclcpp/include/rclcpp/publisher.hpp +++ b/rclcpp/include/rclcpp/publisher.hpp @@ -160,7 +160,7 @@ public: std::shared_ptr allocator) : PublisherBase(node_handle, topic, publisher_options.qos.depth), message_allocator_(allocator) { - using rosidl_generator_cpp::get_message_type_support_handle; + using rosidl_typesupport_cpp::get_message_type_support_handle; allocator::set_allocator_for_deleter(&message_deleter_, message_allocator_.get()); rcl_allocator_ = publisher_options.allocator; diff --git a/rclcpp/include/rclcpp/service.hpp b/rclcpp/include/rclcpp/service.hpp index db224f3..9d32870 100644 --- a/rclcpp/include/rclcpp/service.hpp +++ b/rclcpp/include/rclcpp/service.hpp @@ -102,7 +102,7 @@ public: rcl_service_options_t & service_options) : ServiceBase(node_handle, service_name), any_callback_(any_callback) { - using rosidl_generator_cpp::get_service_type_support_handle; + using rosidl_typesupport_cpp::get_service_type_support_handle; auto service_type_support_handle = get_service_type_support_handle(); // rcl does the static memory allocation here diff --git a/rclcpp/include/rclcpp/subscription.hpp b/rclcpp/include/rclcpp/subscription.hpp index c1002dd..10a75f2 100644 --- a/rclcpp/include/rclcpp/subscription.hpp +++ b/rclcpp/include/rclcpp/subscription.hpp @@ -155,7 +155,7 @@ public: get_intra_process_message_callback_(nullptr), matches_any_intra_process_publishers_(nullptr) { - using rosidl_generator_cpp::get_message_type_support_handle; + using rosidl_typesupport_cpp::get_message_type_support_handle; auto type_support_handle = get_message_type_support_handle(); if (rcl_subscription_init( diff --git a/rclcpp/include/rclcpp/type_support_decl.hpp b/rclcpp/include/rclcpp/type_support_decl.hpp index b4abc14..cda0bae 100644 --- a/rclcpp/include/rclcpp/type_support_decl.hpp +++ b/rclcpp/include/rclcpp/type_support_decl.hpp @@ -18,8 +18,8 @@ #include "rosidl_generator_cpp/message_type_support_decl.hpp" #include "rosidl_generator_cpp/service_type_support_decl.hpp" -#include "rosidl_generator_cpp/message_type_support.hpp" -#include "rosidl_generator_cpp/service_type_support.hpp" +#include "rosidl_typesupport_cpp/message_type_support.hpp" +#include "rosidl_typesupport_cpp/service_type_support.hpp" #include "rclcpp/visibility_control.hpp" diff --git a/rclcpp/package.xml b/rclcpp/package.xml index 68e1542..5c7c1e5 100644 --- a/rclcpp/package.xml +++ b/rclcpp/package.xml @@ -14,8 +14,10 @@ rcl_interfaces rmw_implementation_cmake rosidl_generator_cpp + rosidl_typesupport_cpp rcl_interfaces rosidl_generator_cpp + rosidl_typesupport_cpp rcl rmw_implementation diff --git a/rclcpp/src/rclcpp/type_support.cpp b/rclcpp/src/rclcpp/type_support.cpp index feaab48..27dfccb 100644 --- a/rclcpp/src/rclcpp/type_support.cpp +++ b/rclcpp/src/rclcpp/type_support.cpp @@ -30,7 +30,7 @@ const rosidl_message_type_support_t * rclcpp::type_support::get_intra_process_message_msg_type_support() { - return rosidl_generator_cpp::get_message_type_support_handle< + return rosidl_typesupport_cpp::get_message_type_support_handle< rcl_interfaces::msg::IntraProcessMessage >(); } @@ -38,7 +38,7 @@ rclcpp::type_support::get_intra_process_message_msg_type_support() const rosidl_message_type_support_t * rclcpp::type_support::get_parameter_event_msg_type_support() { - return rosidl_generator_cpp::get_message_type_support_handle< + return rosidl_typesupport_cpp::get_message_type_support_handle< rcl_interfaces::msg::ParameterEvent >(); } @@ -46,7 +46,7 @@ rclcpp::type_support::get_parameter_event_msg_type_support() const rosidl_message_type_support_t * rclcpp::type_support::get_set_parameters_result_msg_type_support() { - return rosidl_generator_cpp::get_message_type_support_handle< + return rosidl_typesupport_cpp::get_message_type_support_handle< rcl_interfaces::msg::SetParametersResult >(); } @@ -54,7 +54,7 @@ rclcpp::type_support::get_set_parameters_result_msg_type_support() const rosidl_message_type_support_t * rclcpp::type_support::get_parameter_descriptor_msg_type_support() { - return rosidl_generator_cpp::get_message_type_support_handle< + return rosidl_typesupport_cpp::get_message_type_support_handle< rcl_interfaces::msg::ParameterDescriptor >(); } @@ -62,7 +62,7 @@ rclcpp::type_support::get_parameter_descriptor_msg_type_support() const rosidl_message_type_support_t * rclcpp::type_support::get_list_parameters_result_msg_type_support() { - return rosidl_generator_cpp::get_message_type_support_handle< + return rosidl_typesupport_cpp::get_message_type_support_handle< rcl_interfaces::msg::ListParametersResult >(); } @@ -70,7 +70,7 @@ rclcpp::type_support::get_list_parameters_result_msg_type_support() const rosidl_service_type_support_t * rclcpp::type_support::get_get_parameters_srv_type_support() { - return rosidl_generator_cpp::get_service_type_support_handle< + return rosidl_typesupport_cpp::get_service_type_support_handle< rcl_interfaces::srv::GetParameters >(); } @@ -78,7 +78,7 @@ rclcpp::type_support::get_get_parameters_srv_type_support() const rosidl_service_type_support_t * rclcpp::type_support::get_get_parameter_types_srv_type_support() { - return rosidl_generator_cpp::get_service_type_support_handle< + return rosidl_typesupport_cpp::get_service_type_support_handle< rcl_interfaces::srv::GetParameterTypes >(); } @@ -86,7 +86,7 @@ rclcpp::type_support::get_get_parameter_types_srv_type_support() const rosidl_service_type_support_t * rclcpp::type_support::get_set_parameters_srv_type_support() { - return rosidl_generator_cpp::get_service_type_support_handle< + return rosidl_typesupport_cpp::get_service_type_support_handle< rcl_interfaces::srv::SetParameters >(); } @@ -94,7 +94,7 @@ rclcpp::type_support::get_set_parameters_srv_type_support() const rosidl_service_type_support_t * rclcpp::type_support::get_list_parameters_srv_type_support() { - return rosidl_generator_cpp::get_service_type_support_handle< + return rosidl_typesupport_cpp::get_service_type_support_handle< rcl_interfaces::srv::ListParameters >(); } @@ -102,7 +102,7 @@ rclcpp::type_support::get_list_parameters_srv_type_support() const rosidl_service_type_support_t * rclcpp::type_support::get_describe_parameters_srv_type_support() { - return rosidl_generator_cpp::get_service_type_support_handle< + return rosidl_typesupport_cpp::get_service_type_support_handle< rcl_interfaces::srv::DescribeParameters >(); } @@ -110,7 +110,7 @@ rclcpp::type_support::get_describe_parameters_srv_type_support() const rosidl_service_type_support_t * rclcpp::type_support::get_set_parameters_atomically_srv_type_support() { - return rosidl_generator_cpp::get_service_type_support_handle< + return rosidl_typesupport_cpp::get_service_type_support_handle< rcl_interfaces::srv::SetParametersAtomically >(); }