diff --git a/rcl/CMakeLists.txt b/rcl/CMakeLists.txt
index c5092071e..f32797648 100644
--- a/rcl/CMakeLists.txt
+++ b/rcl/CMakeLists.txt
@@ -3,6 +3,7 @@ cmake_minimum_required(VERSION 3.5)
project(rcl)
find_package(ament_cmake_ros REQUIRED)
+find_package(ament_cmake_gen_version_h REQUIRED)
find_package(libyaml_vendor REQUIRED)
find_package(rcl_interfaces REQUIRED)
@@ -147,6 +148,7 @@ ament_export_dependencies(rmw)
ament_export_dependencies(rmw_implementation)
ament_export_dependencies(rosidl_runtime_c)
ament_export_dependencies(type_description_interfaces)
+ament_generate_version_header(${PROJECT_NAME})
if(BUILD_TESTING)
find_package(ament_lint_auto REQUIRED)
diff --git a/rcl/package.xml b/rcl/package.xml
index a6d23238d..141458fbf 100644
--- a/rcl/package.xml
+++ b/rcl/package.xml
@@ -16,6 +16,7 @@
Jacob Perron
ament_cmake_ros
+ ament_cmake_gen_version_h
rmw
diff --git a/rcl_action/CMakeLists.txt b/rcl_action/CMakeLists.txt
index 241259a0f..9055f1147 100644
--- a/rcl_action/CMakeLists.txt
+++ b/rcl_action/CMakeLists.txt
@@ -3,6 +3,7 @@ cmake_minimum_required(VERSION 3.5)
project(rcl_action)
find_package(ament_cmake_ros REQUIRED)
+find_package(ament_cmake_gen_version_h REQUIRED)
find_package(action_msgs REQUIRED)
find_package(rcl REQUIRED)
@@ -223,4 +224,6 @@ ament_export_dependencies(rcl)
ament_export_dependencies(rmw)
ament_export_dependencies(rosidl_runtime_c)
+ament_generate_version_header(${PROJECT_NAME})
+
ament_package()
diff --git a/rcl_action/package.xml b/rcl_action/package.xml
index f2aa97f17..3694c9b38 100644
--- a/rcl_action/package.xml
+++ b/rcl_action/package.xml
@@ -14,6 +14,7 @@
Jacob Perron
ament_cmake_ros
+ ament_cmake_gen_version_h
action_msgs
rcl
diff --git a/rcl_lifecycle/CMakeLists.txt b/rcl_lifecycle/CMakeLists.txt
index e5d5d0ace..54077b3a5 100644
--- a/rcl_lifecycle/CMakeLists.txt
+++ b/rcl_lifecycle/CMakeLists.txt
@@ -3,6 +3,7 @@ cmake_minimum_required(VERSION 3.5)
project(rcl_lifecycle)
find_package(ament_cmake_ros REQUIRED)
+find_package(ament_cmake_gen_version_h REQUIRED)
find_package(lifecycle_msgs REQUIRED)
find_package(rcl REQUIRED)
@@ -134,6 +135,8 @@ ament_export_targets(${PROJECT_NAME})
ament_export_dependencies(lifecycle_msgs)
ament_export_dependencies(rcl)
+ament_generate_version_header(${PROJECT_NAME})
+
ament_package()
install(
diff --git a/rcl_lifecycle/package.xml b/rcl_lifecycle/package.xml
index f3ad16fee..6af7768fd 100644
--- a/rcl_lifecycle/package.xml
+++ b/rcl_lifecycle/package.xml
@@ -15,6 +15,7 @@
Karsten Knese
ament_cmake_ros
+ ament_cmake_gen_version_h
lifecycle_msgs
rcl
diff --git a/rcl_yaml_param_parser/CMakeLists.txt b/rcl_yaml_param_parser/CMakeLists.txt
index 2315a6432..9177967dd 100644
--- a/rcl_yaml_param_parser/CMakeLists.txt
+++ b/rcl_yaml_param_parser/CMakeLists.txt
@@ -3,6 +3,7 @@ cmake_minimum_required(VERSION 3.5)
project(rcl_yaml_param_parser)
find_package(ament_cmake_ros REQUIRED)
+find_package(ament_cmake_gen_version_h REQUIRED)
find_package(rcutils REQUIRED)
find_package(rmw REQUIRED)
find_package(libyaml_vendor REQUIRED)
@@ -210,6 +211,8 @@ ament_export_targets(${PROJECT_NAME})
ament_export_dependencies(ament_cmake rcutils)
+ament_generate_version_header(${PROJECT_NAME})
+
install(
DIRECTORY include/
DESTINATION include/${PROJECT_NAME}
diff --git a/rcl_yaml_param_parser/package.xml b/rcl_yaml_param_parser/package.xml
index a7c3f8c0c..f882aee20 100644
--- a/rcl_yaml_param_parser/package.xml
+++ b/rcl_yaml_param_parser/package.xml
@@ -15,6 +15,7 @@
Jacob Perron
ament_cmake_ros
+ ament_cmake_gen_version_h
libyaml_vendor
rcutils