diff --git a/README.md b/README.md
index c9a35a5b..5c1eab2d 100644
--- a/README.md
+++ b/README.md
@@ -16,9 +16,14 @@ Foxy | Edifice | [foxy](https://github.com/ros-controls/gz_ros2_control/tree/fox
Galactic | Edifice | [galactic](https://github.com/ros-controls/gz_ros2_control/tree/galactic) | https://packages.ros.org
Galactic | Fortress | [galactic](https://github.com/ros-controls/gz_ros2_control/tree/galactic) | only from source
Humble | Fortress | [ros2](https://github.com/ros-controls/gz_ros2_control/tree/master) | https://packages.ros.org
+Iron | Edifice | [ros2](https://github.com/ros-controls/gz_ros2_control/tree/master) | only from source
+Iron | Fortress | [ros2](https://github.com/ros-controls/gz_ros2_control/tree/master) | https://packages.ros.org
+Iron | Garden (not released) | [ros2](https://github.com/ros-controls/gz_ros2_control/tree/master) | only from source
+Iron | Harmonic (not released) | [ros2](https://github.com/ros-controls/gz_ros2_control/tree/master) | only from source
Rolling | Edifice | [ros2](https://github.com/ros-controls/gz_ros2_control/tree/master) | only from source
Rolling | Fortress | [ros2](https://github.com/ros-controls/gz_ros2_control/tree/master) | https://packages.ros.org
Rolling | Garden (not released) | [ros2](https://github.com/ros-controls/gz_ros2_control/tree/master) | only from source
+Rolling | Harmonic (not released) | [ros2](https://github.com/ros-controls/gz_ros2_control/tree/master) | only from source
## Build status
@@ -37,6 +42,7 @@ If you want compile this from source, you should choose the Gazebo version. The
```bash
export GZ_VERSION=fortress
export GZ_VERSION=garden
+export GZ_VERSION=harmonic
```
Then create a workspace, clone the repo and compile it:
diff --git a/gz_ros2_control/CMakeLists.txt b/gz_ros2_control/CMakeLists.txt
index 8ec5f5a5..c28ae795 100644
--- a/gz_ros2_control/CMakeLists.txt
+++ b/gz_ros2_control/CMakeLists.txt
@@ -36,6 +36,15 @@ if("$ENV{GZ_VERSION}" STREQUAL "garden")
set(GZ_PLUGIN gz-plugin${GZ_PLUGIN_VER}::register)
set(GZ_SIM gz-sim${GZ_SIM_VER}::core)
add_definitions(-DGZ_HEADERS)
+elseif("$ENV{GZ_VERSION}" STREQUAL "harmonic")
+ find_package(gz-sim8 REQUIRED)
+ set(GZ_SIM_VER ${gz-sim8_VERSION_MAJOR})
+ message(STATUS "Compiling against Gazebo Harmonic")
+ find_package(gz-plugin2 REQUIRED)
+ set(GZ_PLUGIN_VER ${gz-plugin2_VERSION_MAJOR})
+ set(GZ_PLUGIN gz-plugin${GZ_PLUGIN_VER}::register)
+ set(GZ_SIM gz-sim${GZ_SIM_VER}::core)
+ add_definitions(-DGZ_HEADERS)
else()
find_package(ignition-gazebo6 REQUIRED)
set(GZ_SIM_VER ${ignition-gazebo6_VERSION_MAJOR})
diff --git a/gz_ros2_control/package.xml b/gz_ros2_control/package.xml
index 6a97719a..6344c7bb 100644
--- a/gz_ros2_control/package.xml
+++ b/gz_ros2_control/package.xml
@@ -15,10 +15,12 @@
ignition-gazebo6
ignition-gazebo6
gz-sim7
+ gz-sim8
ignition-plugin
ignition-plugin
gz-plugin2
+ gz-plugin2
pluginlib
rclcpp
yaml_cpp_vendor
diff --git a/gz_ros2_control_demos/package.xml b/gz_ros2_control_demos/package.xml
index 45565b05..51ef09fb 100644
--- a/gz_ros2_control_demos/package.xml
+++ b/gz_ros2_control_demos/package.xml
@@ -37,6 +37,7 @@
rclcpp
robot_state_publisher
ros_gz_sim
+ ros_gz_sim
ros_gz_sim
ros_ign_gazebo
ros2controlcli
diff --git a/gz_ros2_control_tests/package.xml b/gz_ros2_control_tests/package.xml
index 67add5ff..870ceef6 100644
--- a/gz_ros2_control_tests/package.xml
+++ b/gz_ros2_control_tests/package.xml
@@ -29,6 +29,7 @@
rclcpp
robot_state_publisher
ros_gz_sim
+ ros_gz_sim
ros_gz_sim
ros_ign_gazebo
ros2controlcli