diff --git a/rclcpp_action/CMakeLists.txt b/rclcpp_action/CMakeLists.txt index d07031d5f4..ece59d7726 100644 --- a/rclcpp_action/CMakeLists.txt +++ b/rclcpp_action/CMakeLists.txt @@ -3,6 +3,7 @@ cmake_minimum_required(VERSION 3.20) project(rclcpp_action) find_package(ament_cmake_ros REQUIRED) +find_package(ament_cmake_ros_core REQUIRED) find_package(action_msgs REQUIRED) find_package(rclcpp REQUIRED) find_package(rcl REQUIRED) @@ -10,11 +11,6 @@ find_package(rcl_action REQUIRED) find_package(rcpputils REQUIRED) find_package(rosidl_runtime_c REQUIRED) -# Default to C++17 -if(NOT CMAKE_CXX_STANDARD) - set(CMAKE_CXX_STANDARD 17) - set(CMAKE_CXX_STANDARD_REQUIRED ON) -endif() if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") add_compile_options( -Wall -Wextra -Wpedantic -Wnon-virtual-dtor -Woverloaded-virtual @@ -42,6 +38,9 @@ target_link_libraries(${PROJECT_NAME} PUBLIC rcl_action::rcl_action rclcpp::rclcpp rosidl_runtime_c::rosidl_runtime_c + # Note we link public on purpose, as we want to export + # the used C++ version as minimum to all consuming packages + ament_cmake_ros_core::ament_ros_defaults ) target_link_libraries(${PROJECT_NAME} PRIVATE rcpputils::rcpputils diff --git a/rclcpp_action/package.xml b/rclcpp_action/package.xml index 4f5f1caea1..b4cdcdc8d1 100644 --- a/rclcpp_action/package.xml +++ b/rclcpp_action/package.xml @@ -18,6 +18,7 @@ rosidl_runtime_c + ament_cmake_ros_core rosidl_runtime_c action_msgs diff --git a/rclcpp_components/CMakeLists.txt b/rclcpp_components/CMakeLists.txt index 9fdcf55511..e4bd0c71cb 100644 --- a/rclcpp_components/CMakeLists.txt +++ b/rclcpp_components/CMakeLists.txt @@ -2,11 +2,6 @@ cmake_minimum_required(VERSION 3.20) project(rclcpp_components) -# Default to C++17 -if(NOT CMAKE_CXX_STANDARD) - set(CMAKE_CXX_STANDARD 17) - set(CMAKE_CXX_STANDARD_REQUIRED ON) -endif() if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") add_compile_options( -Wall -Wextra -Wpedantic -Wnon-virtual-dtor -Woverloaded-virtual @@ -15,6 +10,7 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") endif() find_package(ament_cmake_ros REQUIRED) +find_package(ament_cmake_ros_core REQUIRED) find_package(ament_index_cpp REQUIRED) find_package(class_loader REQUIRED) find_package(composition_interfaces REQUIRED) @@ -30,7 +26,10 @@ target_include_directories(component INTERFACE "$") target_link_libraries(component INTERFACE class_loader::class_loader - rclcpp::rclcpp) + rclcpp::rclcpp + # Note we link public on purpose, as we want to export + # the used C++ version as minimum to all consuming packages + ament_cmake_ros_core::ament_ros_defaults) add_library( component_manager @@ -45,6 +44,9 @@ target_link_libraries(component_manager PUBLIC composition_interfaces::composition_interfaces rclcpp::rclcpp rmw::rmw + # Note we link public on purpose, as we want to export + # the used C++ version as minimum to all consuming packages + ament_cmake_ros_core::ament_ros_defaults ) target_link_libraries(component_manager PRIVATE ament_index_cpp::ament_index_cpp diff --git a/rclcpp_components/package.xml b/rclcpp_components/package.xml index ddb961a7d2..5833723eca 100644 --- a/rclcpp_components/package.xml +++ b/rclcpp_components/package.xml @@ -22,6 +22,7 @@ rcpputils rmw + ament_cmake_ros_core ament_index_cpp class_loader composition_interfaces diff --git a/rclcpp_lifecycle/CMakeLists.txt b/rclcpp_lifecycle/CMakeLists.txt index 3eb78ad51f..e96278e2f0 100644 --- a/rclcpp_lifecycle/CMakeLists.txt +++ b/rclcpp_lifecycle/CMakeLists.txt @@ -2,16 +2,12 @@ cmake_minimum_required(VERSION 3.20) project(rclcpp_lifecycle) -# Default to C++17 -if(NOT CMAKE_CXX_STANDARD) - set(CMAKE_CXX_STANDARD 17) - set(CMAKE_CXX_STANDARD_REQUIRED ON) -endif() if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") add_compile_options(-Wall -Wextra -Wpedantic -Wnon-virtual-dtor -Woverloaded-virtual) endif() find_package(ament_cmake_ros REQUIRED) +find_package(ament_cmake_ros_core REQUIRED) find_package(lifecycle_msgs REQUIRED) find_package(rcl REQUIRED) find_package(rclcpp REQUIRED) @@ -41,6 +37,9 @@ target_link_libraries(${PROJECT_NAME} rcl_lifecycle::rcl_lifecycle rcutils::rcutils rosidl_typesupport_cpp::rosidl_typesupport_cpp + # Note we link public on purpose, as we want to export + # the used C++ version as minimum to all consuming packages + ament_cmake_ros_core::ament_ros_defaults ) # Causes the visibility macros to use dllexport rather than dllimport, diff --git a/rclcpp_lifecycle/package.xml b/rclcpp_lifecycle/package.xml index 12b80fe0e1..35eb936835 100644 --- a/rclcpp_lifecycle/package.xml +++ b/rclcpp_lifecycle/package.xml @@ -16,6 +16,7 @@ ament_cmake_ros + ament_cmake_ros_core lifecycle_msgs rcl rclcpp