diff --git a/rmw_dds_common/rmw_dds_common/CMakeLists.txt b/rmw_dds_common/rmw_dds_common/CMakeLists.txt index 2037bbf7..6d9d59a5 100644 --- a/rmw_dds_common/rmw_dds_common/CMakeLists.txt +++ b/rmw_dds_common/rmw_dds_common/CMakeLists.txt @@ -21,7 +21,7 @@ ament_export_dependencies(ament_cmake_core) ament_export_dependencies(rcpputils) ament_export_dependencies(rcutils) ament_export_dependencies(rmw) -ament_export_dependencies(rosidl_default_runtime) +ament_export_dependencies(rmw_dds_common_typesupports) rosidl_generate_interfaces( ${PROJECT_NAME} @@ -39,7 +39,7 @@ ament_target_dependencies(${PROJECT_NAME}_library "rcpputils" "rcutils" "rmw" - "rosidl_runtime_cpp") + "rmw_dds_common_typesupports") add_dependencies(${PROJECT_NAME}_library ${PROJECT_NAME}) target_include_directories(${PROJECT_NAME}_library diff --git a/rmw_dds_common/rmw_dds_common/package.xml b/rmw_dds_common/rmw_dds_common/package.xml index ab109030..b840d5fa 100644 --- a/rmw_dds_common/rmw_dds_common/package.xml +++ b/rmw_dds_common/rmw_dds_common/package.xml @@ -16,7 +16,7 @@ rcutils rcpputils rmw - rosidl_runtime_cpp + rmw_dds_common_typesupports ament_cmake_gmock ament_lint_auto diff --git a/rmw_dds_common/rmw_dds_common_typesupports/CMakeLists.txt b/rmw_dds_common/rmw_dds_common_typesupports/CMakeLists.txt new file mode 100644 index 00000000..3e9c026d --- /dev/null +++ b/rmw_dds_common/rmw_dds_common_typesupports/CMakeLists.txt @@ -0,0 +1,45 @@ +cmake_minimum_required(VERSION 3.5) +project(rmw_dds_common_typesupports) + +# Default to C99 +if(NOT CMAKE_C_STANDARD) + set(CMAKE_C_STANDARD 99) +endif() + +# Default to C++14 +if(NOT CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 14) +endif() + +if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) +endif() + +# find dependencies +find_package(ament_cmake REQUIRED) + +# Load type support packages to make sure that they are installed +find_package(rosidl_typesupport_fastrtps_c REQUIRED) +find_package(rosidl_typesupport_fastrtps_cpp REQUIRED) +find_package(rosidl_typesupport_introspection_c REQUIRED) +find_package(rosidl_typesupport_introspection_cpp REQUIRED) + +# This is an hack to have the `rosidl_generate_interfaces()` function consider +# all the type supports required by `rmw_connextdds` even though that RMW +# implementation has not yet been registered. +ament_index_register_resource(rmw_typesupport CONTENT + "rosidl_typesupport_c;rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c;rosidl_typesupport_cpp;rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp") + + +if(BUILD_TESTING) + find_package(ament_lint_auto REQUIRED) + # the following line skips the linter which checks for copyrights + # uncomment the line when a copyright and license is not present in all source files + #set(ament_cmake_copyright_FOUND TRUE) + # the following line skips cpplint (only works in a git repo) + # uncomment the line when this package is not in a git repo + #set(ament_cmake_cpplint_FOUND TRUE) + ament_lint_auto_find_test_dependencies() +endif() + +ament_package() diff --git a/rmw_dds_common/rmw_dds_common_typesupports/package.xml b/rmw_dds_common/rmw_dds_common_typesupports/package.xml new file mode 100644 index 00000000..8ce7a42a --- /dev/null +++ b/rmw_dds_common/rmw_dds_common_typesupports/package.xml @@ -0,0 +1,23 @@ + + + + rmw_dds_common_typesupports + 0.1.0 + A meta-package to hack type support generation for backported rmw_dds_common + Andrea Sorbini + Apache 2.0 + + ament_cmake + + rosidl_typesupport_fastrtps_c + rosidl_typesupport_fastrtps_cpp + rosidl_typesupport_introspection_c + rosidl_typesupport_introspection_cpp + + ament_lint_auto + ament_lint_common + + + ament_cmake + +