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