diff --git a/ros2bag/package.xml b/ros2bag/package.xml
index e8fc0e0bd3..ca323b3e78 100644
--- a/ros2bag/package.xml
+++ b/ros2bag/package.xml
@@ -11,6 +11,8 @@
ROS Tooling Working Group
Apache License 2.0
+ carma_cmake_common
+
ros2cli
rosbag2_py
rosbag2_transport
diff --git a/rosbag2/CMakeLists.txt b/rosbag2/CMakeLists.txt
index 407d502b35..f02234f664 100644
--- a/rosbag2/CMakeLists.txt
+++ b/rosbag2/CMakeLists.txt
@@ -1,5 +1,10 @@
cmake_minimum_required(VERSION 3.5)
project(rosbag2)
+# Declare carma package and check ROS version
+find_package(carma_cmake_common REQUIRED)
+carma_check_ros_version(2)
+carma_package()
+
find_package(ament_cmake REQUIRED)
ament_package()
diff --git a/rosbag2/package.xml b/rosbag2/package.xml
index b427fa9ca5..7ae8fde65a 100644
--- a/rosbag2/package.xml
+++ b/rosbag2/package.xml
@@ -9,6 +9,7 @@
Apache License 2.0
ament_cmake
+ carma_cmake_common
ros2bag
rosbag2_compression
diff --git a/rosbag2_compression/CMakeLists.txt b/rosbag2_compression/CMakeLists.txt
index db65af80e8..8bfec3f4cd 100644
--- a/rosbag2_compression/CMakeLists.txt
+++ b/rosbag2_compression/CMakeLists.txt
@@ -1,6 +1,11 @@
cmake_minimum_required(VERSION 3.5)
project(rosbag2_compression)
+# Declare carma package and check ROS version
+find_package(carma_cmake_common REQUIRED)
+carma_check_ros_version(2)
+carma_package()
+
# Default to C99
if(NOT CMAKE_C_STANDARD)
set(CMAKE_C_STANDARD 99)
diff --git a/rosbag2_compression/package.xml b/rosbag2_compression/package.xml
index b54e83e2b5..accdc0e390 100644
--- a/rosbag2_compression/package.xml
+++ b/rosbag2_compression/package.xml
@@ -10,6 +10,7 @@
Apache License 2.0
ament_cmake
+ carma_cmake_common
rcpputils
rcutils
diff --git a/rosbag2_compression_zstd/CMakeLists.txt b/rosbag2_compression_zstd/CMakeLists.txt
index ea6f677d3a..3c37c46328 100644
--- a/rosbag2_compression_zstd/CMakeLists.txt
+++ b/rosbag2_compression_zstd/CMakeLists.txt
@@ -1,6 +1,11 @@
cmake_minimum_required(VERSION 3.5)
project(rosbag2_compression_zstd)
+# Declare carma package and check ROS version
+find_package(carma_cmake_common REQUIRED)
+carma_check_ros_version(2)
+carma_package()
+
# Default to C99
if(NOT CMAKE_C_STANDARD)
set(CMAKE_C_STANDARD 99)
diff --git a/rosbag2_compression_zstd/package.xml b/rosbag2_compression_zstd/package.xml
index a8c7950338..3e1293f9df 100644
--- a/rosbag2_compression_zstd/package.xml
+++ b/rosbag2_compression_zstd/package.xml
@@ -12,6 +12,7 @@
Emerson Knapp
ament_cmake
+ carma_cmake_common
pluginlib
rcpputils
diff --git a/rosbag2_cpp/CMakeLists.txt b/rosbag2_cpp/CMakeLists.txt
index f93b486ac0..8baaab4184 100644
--- a/rosbag2_cpp/CMakeLists.txt
+++ b/rosbag2_cpp/CMakeLists.txt
@@ -1,6 +1,11 @@
cmake_minimum_required(VERSION 3.5)
project(rosbag2_cpp)
+# Declare carma package and check ROS version
+find_package(carma_cmake_common REQUIRED)
+carma_check_ros_version(2)
+carma_package()
+
# Default to C99
if(NOT CMAKE_C_STANDARD)
set(CMAKE_C_STANDARD 99)
diff --git a/rosbag2_cpp/package.xml b/rosbag2_cpp/package.xml
index 7aca741f1c..cb49a4285f 100644
--- a/rosbag2_cpp/package.xml
+++ b/rosbag2_cpp/package.xml
@@ -9,6 +9,7 @@
Apache License 2.0
ament_cmake
+ carma_cmake_common
ament_index_cpp
pluginlib
diff --git a/rosbag2_performance/rosbag2_performance_benchmarking/CMakeLists.txt b/rosbag2_performance/rosbag2_performance_benchmarking/CMakeLists.txt
index 7a54f6d0bb..17d5021ae7 100644
--- a/rosbag2_performance/rosbag2_performance_benchmarking/CMakeLists.txt
+++ b/rosbag2_performance/rosbag2_performance_benchmarking/CMakeLists.txt
@@ -1,6 +1,11 @@
cmake_minimum_required(VERSION 3.5)
project(rosbag2_performance_benchmarking)
+# Declare carma package and check ROS version
+find_package(carma_cmake_common REQUIRED)
+carma_check_ros_version(2)
+carma_package()
+
# Default to C++14
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 14)
diff --git a/rosbag2_performance/rosbag2_performance_benchmarking/package.xml b/rosbag2_performance/rosbag2_performance_benchmarking/package.xml
index 3b6c58e14e..2721d6ce1b 100644
--- a/rosbag2_performance/rosbag2_performance_benchmarking/package.xml
+++ b/rosbag2_performance/rosbag2_performance_benchmarking/package.xml
@@ -10,6 +10,7 @@
Apache License 2.0
ament_cmake
+ carma_cmake_common
rclcpp
rosbag2_compression
diff --git a/rosbag2_py/CMakeLists.txt b/rosbag2_py/CMakeLists.txt
index d354a97044..6f859f5639 100644
--- a/rosbag2_py/CMakeLists.txt
+++ b/rosbag2_py/CMakeLists.txt
@@ -1,6 +1,11 @@
cmake_minimum_required(VERSION 3.5)
project(rosbag2_py)
+# Declare carma package and check ROS version
+find_package(carma_cmake_common REQUIRED)
+carma_check_ros_version(2)
+carma_package()
+
# Default to C99
if(NOT CMAKE_C_STANDARD)
set(CMAKE_C_STANDARD 99)
diff --git a/rosbag2_py/package.xml b/rosbag2_py/package.xml
index ff55579307..2942147583 100644
--- a/rosbag2_py/package.xml
+++ b/rosbag2_py/package.xml
@@ -15,6 +15,7 @@
ament_cmake_ros
ament_cmake_python
python_cmake_module
+ carma_cmake_common
pybind11_vendor
rosbag2_compression
diff --git a/rosbag2_storage/CMakeLists.txt b/rosbag2_storage/CMakeLists.txt
index fea976d971..361a56aa52 100644
--- a/rosbag2_storage/CMakeLists.txt
+++ b/rosbag2_storage/CMakeLists.txt
@@ -1,6 +1,11 @@
cmake_minimum_required(VERSION 3.5)
project(rosbag2_storage)
+# Declare carma package and check ROS version
+find_package(carma_cmake_common REQUIRED)
+carma_check_ros_version(2)
+carma_package()
+
# Default to C99
if(NOT CMAKE_C_STANDARD)
set(CMAKE_C_STANDARD 99)
diff --git a/rosbag2_storage/package.xml b/rosbag2_storage/package.xml
index 6e411d89e3..af96f0b629 100644
--- a/rosbag2_storage/package.xml
+++ b/rosbag2_storage/package.xml
@@ -9,6 +9,7 @@
Apache License 2.0
ament_cmake
+ carma_cmake_common
pluginlib
rcpputils
diff --git a/rosbag2_storage_default_plugins/CMakeLists.txt b/rosbag2_storage_default_plugins/CMakeLists.txt
index a83a86ad41..7317190e6b 100644
--- a/rosbag2_storage_default_plugins/CMakeLists.txt
+++ b/rosbag2_storage_default_plugins/CMakeLists.txt
@@ -1,6 +1,10 @@
cmake_minimum_required(VERSION 3.5)
project(rosbag2_storage_default_plugins)
+find_package(carma_cmake_common REQUIRED)
+carma_check_ros_version(2)
+carma_package()
+
# Default to C99
if(NOT CMAKE_C_STANDARD)
set(CMAKE_C_STANDARD 99)
diff --git a/rosbag2_storage_default_plugins/package.xml b/rosbag2_storage_default_plugins/package.xml
index 09e4710864..22b472b0a4 100644
--- a/rosbag2_storage_default_plugins/package.xml
+++ b/rosbag2_storage_default_plugins/package.xml
@@ -9,6 +9,7 @@
Apache License 2.0
ament_cmake
+ carma_cmake_common
pluginlib
rcpputils
diff --git a/rosbag2_storage_evaluation/CMakeLists.txt b/rosbag2_storage_evaluation/CMakeLists.txt
index 08ebee029d..cbdf23e528 100644
--- a/rosbag2_storage_evaluation/CMakeLists.txt
+++ b/rosbag2_storage_evaluation/CMakeLists.txt
@@ -2,6 +2,10 @@ cmake_minimum_required(VERSION 3.5)
project(ros2_rosbag_evaluation)
+find_package(carma_cmake_common REQUIRED)
+carma_check_ros_version(2)
+carma_package()
+
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_FLAGS "-O3")
set(BUILD_SHARED_LIBS ON)
diff --git a/rosbag2_test_common/CMakeLists.txt b/rosbag2_test_common/CMakeLists.txt
index f764c3663f..c6af285955 100644
--- a/rosbag2_test_common/CMakeLists.txt
+++ b/rosbag2_test_common/CMakeLists.txt
@@ -1,6 +1,10 @@
cmake_minimum_required(VERSION 3.5)
project(rosbag2_test_common)
+find_package(carma_cmake_common REQUIRED)
+carma_check_ros_version(2)
+carma_package()
+
# Default to C99
if(NOT CMAKE_C_STANDARD)
set(CMAKE_C_STANDARD 99)
diff --git a/rosbag2_test_common/package.xml b/rosbag2_test_common/package.xml
index df48564fd4..6ed066e234 100644
--- a/rosbag2_test_common/package.xml
+++ b/rosbag2_test_common/package.xml
@@ -10,6 +10,7 @@
Apache License 2.0
ament_cmake
+ carma_cmake_common
rclcpp
rcutils
diff --git a/rosbag2_tests/CMakeLists.txt b/rosbag2_tests/CMakeLists.txt
index 3f31e8e378..dc5295d0ec 100644
--- a/rosbag2_tests/CMakeLists.txt
+++ b/rosbag2_tests/CMakeLists.txt
@@ -1,6 +1,11 @@
cmake_minimum_required(VERSION 3.5)
project(rosbag2_tests)
+# Declare carma package and check ROS version
+find_package(carma_cmake_common REQUIRED)
+carma_check_ros_version(2)
+carma_package()
+
add_definitions(-D_SRC_RESOURCES_DIR_PATH="${CMAKE_CURRENT_SOURCE_DIR}/resources")
# Default to C99
diff --git a/rosbag2_tests/package.xml b/rosbag2_tests/package.xml
index 62e7c5b6bf..8a463aa7c6 100644
--- a/rosbag2_tests/package.xml
+++ b/rosbag2_tests/package.xml
@@ -10,6 +10,7 @@
Apache License 2.0
ament_cmake
+ carma_cmake_common
ament_index_cpp
diff --git a/rosbag2_transport/CMakeLists.txt b/rosbag2_transport/CMakeLists.txt
index df066a5398..1d6aa86f07 100644
--- a/rosbag2_transport/CMakeLists.txt
+++ b/rosbag2_transport/CMakeLists.txt
@@ -1,6 +1,10 @@
cmake_minimum_required(VERSION 3.5)
project(rosbag2_transport)
+find_package(carma_cmake_common REQUIRED)
+carma_check_ros_version(2)
+carma_package()
+
# Default to C99
if(NOT CMAKE_C_STANDARD)
set(CMAKE_C_STANDARD 99)
diff --git a/rosbag2_transport/package.xml b/rosbag2_transport/package.xml
index faf588d500..e76c380093 100644
--- a/rosbag2_transport/package.xml
+++ b/rosbag2_transport/package.xml
@@ -10,6 +10,7 @@
Apache License 2.0
ament_cmake_ros
+ carma_cmake_common
python_cmake_module
rclcpp
diff --git a/shared_queues_vendor/CMakeLists.txt b/shared_queues_vendor/CMakeLists.txt
index 0daf46722e..622426f0ef 100644
--- a/shared_queues_vendor/CMakeLists.txt
+++ b/shared_queues_vendor/CMakeLists.txt
@@ -1,6 +1,11 @@
cmake_minimum_required(VERSION 3.5)
project(shared_queues_vendor)
+# Declare carma package and check ROS version
+find_package(carma_cmake_common REQUIRED)
+carma_check_ros_version(2)
+carma_package()
+
find_package(ament_cmake REQUIRED)
include(ExternalProject)
diff --git a/shared_queues_vendor/package.xml b/shared_queues_vendor/package.xml
index 4ef63761d6..6771b865a6 100644
--- a/shared_queues_vendor/package.xml
+++ b/shared_queues_vendor/package.xml
@@ -10,6 +10,7 @@
Apache License 2.0
ament_cmake
+ carma_cmake_common
ament_cmake
diff --git a/sqlite3_vendor/CMakeLists.txt b/sqlite3_vendor/CMakeLists.txt
index b115233b96..84f590906a 100644
--- a/sqlite3_vendor/CMakeLists.txt
+++ b/sqlite3_vendor/CMakeLists.txt
@@ -1,6 +1,11 @@
cmake_minimum_required(VERSION 3.5)
project(sqlite3_vendor)
+# Declare carma package and check ROS version
+find_package(carma_cmake_common REQUIRED)
+carma_check_ros_version(2)
+carma_package()
+
find_package(ament_cmake REQUIRED)
option(FORCE_BUILD_VENDOR_PKG
diff --git a/sqlite3_vendor/package.xml b/sqlite3_vendor/package.xml
index 6364e3ce10..d3261ae590 100644
--- a/sqlite3_vendor/package.xml
+++ b/sqlite3_vendor/package.xml
@@ -10,6 +10,7 @@
Apache License 2.0
ament_cmake
+ carma_cmake_common
libsqlite3-dev
diff --git a/zstd_vendor/CMakeLists.txt b/zstd_vendor/CMakeLists.txt
index 108f63c45c..d823f95441 100644
--- a/zstd_vendor/CMakeLists.txt
+++ b/zstd_vendor/CMakeLists.txt
@@ -2,6 +2,10 @@ cmake_minimum_required(VERSION 3.7)
project(zstd_vendor)
+find_package(carma_cmake_common REQUIRED)
+carma_check_ros_version(2)
+carma_package()
+
find_package(ament_cmake REQUIRED)
option(FORCE_BUILD_VENDOR_PKG
diff --git a/zstd_vendor/package.xml b/zstd_vendor/package.xml
index 5fa5fcb0d5..5da2c18b6e 100644
--- a/zstd_vendor/package.xml
+++ b/zstd_vendor/package.xml
@@ -13,6 +13,7 @@
https://facebook.github.io/zstd/
ament_cmake
+ carma_cmake_common
libzstd-dev