diff --git a/CMakeLists.txt b/CMakeLists.txt
index f414c3d..df63da3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,71 +1,80 @@
cmake_minimum_required(VERSION 3.8)
project(simulation)
+if(DEFINED ENV{ROS_DISTRO})
+ set(ROS_DISTRO $ENV{ROS_DISTRO})
+endif()
+
# Find required packages
find_package(ament_cmake REQUIRED)
-find_package(ignition-plugin1 REQUIRED COMPONENTS register)
-find_package(ignition-gazebo6 REQUIRED)
-find_package(ignition-physics5 REQUIRED)
-find_package(ignition-common4 REQUIRED)
-find_package(ignition-rendering6 REQUIRED)
-
-# Set Gazebo plugin and sim versions
-set(IGNITION_PLUGIN_VER ${ignition-plugin1_VERSION_MAJOR})
-set(IGNITION_SIM_VER ${ignition-gazebo6_VERSION_MAJOR})
-set(IGNITION_COMMON_VER ${ignition-common4_VERSION_MAJOR})
-set(IGNITION_RENDERING_VER ${ignition-rendering6_VERSION_MAJOR})
-set(IGNITION_SENSORS_VER ${ignition-sensors6_VERSION_MAJOR})
-
-# Add the plugins directory to the include path
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}/Plugins)
-
-# Add the SolarPanelPlugin library
-add_library(SolarPanelPlugin SHARED
- plugins/SolarPanelPlugin.cc
-)
-
-# Link the SolarPanelPlugin library with required dependencies
-target_link_libraries(SolarPanelPlugin
- PRIVATE ignition-plugin${IGNITION_PLUGIN_VER}::ignition-plugin${IGNITION_PLUGIN_VER}
- PRIVATE ignition-common${IGNITION_COMMON_VER}::ignition-common${IGNITION_COMMON_VER}
- PRIVATE ignition-rendering${IGNITION_RENDERING_VER}::ignition-rendering${IGNITION_RENDERING_VER}
- PRIVATE ignition-gazebo${IGNITION_SIM_VER}::core
-)
-
-# Add the RadioisotopeThermalGeneratorPlugin library
-add_library(RadioisotopeThermalGeneratorPlugin SHARED
- plugins/RadioisotopeThermalGeneratorPlugin.cc
-)
-
-# Link the RadioisotopeThermalGeneratorPlugin library with required dependencies
-target_link_libraries(RadioisotopeThermalGeneratorPlugin
- PRIVATE ignition-plugin${IGNITION_PLUGIN_VER}::ignition-plugin${IGNITION_PLUGIN_VER}
- PRIVATE ignition-gazebo${IGNITION_SIM_VER}::core
-)
-# Add the RechargeableBatteryPlugin library
-add_library(RechargeableBatteryPlugin SHARED
- plugins/RechargeableBatteryPlugin.cc
-)
-
-# Link the RechargeableBatteryPlugin library with required dependencies
-target_link_libraries(RechargeableBatteryPlugin
- PRIVATE ignition-plugin${IGNITION_PLUGIN_VER}::ignition-plugin${IGNITION_PLUGIN_VER}
- PRIVATE ignition-gazebo${IGNITION_SIM_VER}::core
-)
-
-# add the SensorPowerSystemPlugin library
-add_library(SensorPowerSystemPlugin SHARED
- plugins/SensorPowerSystemPlugin.cc
-)
-
-# Link the SensorPowerSystemPlugin library with required dependencies
-target_link_libraries(SensorPowerSystemPlugin
- PRIVATE ignition-plugin${IGNITION_PLUGIN_VER}::ignition-plugin${IGNITION_PLUGIN_VER}
- PRIVATE ignition-gazebo${IGNITION_SIM_VER}::core
- PRIVATE ignition-gazebo${IGNITION_SIM_VER}::ignition-gazebo${IGNITION_SIM_VER}
- PRIVATE ignition-sensors${IGNITION_SENSORS_VER}::ignition-sensors${IGNITION_SENSORS_VER}
-)
+if(ROS_DISTRO STREQUAL "humble")
+ # Find required packages
+ find_package(ignition-plugin1 REQUIRED COMPONENTS register)
+ find_package(ignition-gazebo6 REQUIRED)
+ find_package(ignition-physics5 REQUIRED)
+ find_package(ignition-common4 REQUIRED)
+ find_package(ignition-rendering6 REQUIRED)
+
+ # Set Gazebo plugin and sim versions
+ set(IGNITION_PLUGIN_VER ${ignition-plugin1_VERSION_MAJOR})
+ set(IGNITION_SIM_VER ${ignition-gazebo6_VERSION_MAJOR})
+ set(IGNITION_COMMON_VER ${ignition-common4_VERSION_MAJOR})
+ set(IGNITION_RENDERING_VER ${ignition-rendering6_VERSION_MAJOR})
+ set(IGNITION_SENSORS_VER ${ignition-sensors6_VERSION_MAJOR})
+
+ # Add the plugins directory to the include path
+ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/Plugins)
+
+ # Add the SolarPanelPlugin library
+ add_library(SolarPanelPlugin SHARED
+ plugins/SolarPanelPlugin.cc
+ )
+
+ # Link the SolarPanelPlugin library with required dependencies
+ target_link_libraries(SolarPanelPlugin
+ PRIVATE ignition-plugin${IGNITION_PLUGIN_VER}::ignition-plugin${IGNITION_PLUGIN_VER}
+ PRIVATE ignition-common${IGNITION_COMMON_VER}::ignition-common${IGNITION_COMMON_VER}
+ PRIVATE ignition-rendering${IGNITION_RENDERING_VER}::ignition-rendering${IGNITION_RENDERING_VER}
+ PRIVATE ignition-gazebo${IGNITION_SIM_VER}::core
+ )
+
+ # Add the RadioisotopeThermalGeneratorPlugin library
+ add_library(RadioisotopeThermalGeneratorPlugin SHARED
+ plugins/RadioisotopeThermalGeneratorPlugin.cc
+ )
+
+ # Link the RadioisotopeThermalGeneratorPlugin library with required dependencies
+ target_link_libraries(RadioisotopeThermalGeneratorPlugin
+ PRIVATE ignition-plugin${IGNITION_PLUGIN_VER}::ignition-plugin${IGNITION_PLUGIN_VER}
+ PRIVATE ignition-gazebo${IGNITION_SIM_VER}::core
+ )
+
+ # Add the RechargeableBatteryPlugin library
+ add_library(RechargeableBatteryPlugin SHARED
+ plugins/RechargeableBatteryPlugin.cc
+ )
+
+ # Link the RechargeableBatteryPlugin library with required dependencies
+ target_link_libraries(RechargeableBatteryPlugin
+ PRIVATE ignition-plugin${IGNITION_PLUGIN_VER}::ignition-plugin${IGNITION_PLUGIN_VER}
+ PRIVATE ignition-gazebo${IGNITION_SIM_VER}::core
+ )
+
+ # add the SensorPowerSystemPlugin library
+ add_library(SensorPowerSystemPlugin SHARED
+ plugins/SensorPowerSystemPlugin.cc
+ )
+
+ # Link the SensorPowerSystemPlugin library with required dependencies
+ target_link_libraries(SensorPowerSystemPlugin
+ PRIVATE ignition-plugin${IGNITION_PLUGIN_VER}::ignition-plugin${IGNITION_PLUGIN_VER}
+ PRIVATE ignition-gazebo${IGNITION_SIM_VER}::core
+ PRIVATE ignition-gazebo${IGNITION_SIM_VER}::ignition-gazebo${IGNITION_SIM_VER}
+ PRIVATE ignition-sensors${IGNITION_SENSORS_VER}::ignition-sensors${IGNITION_SENSORS_VER}
+ )
+
+endif()
# Create the models directory
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/models/curiosity_path)
@@ -77,12 +86,14 @@ install(DIRECTORY
DESTINATION share/${PROJECT_NAME}/
)
-# Install the plugin library
-install(TARGETS SolarPanelPlugin RadioisotopeThermalGeneratorPlugin RechargeableBatteryPlugin SensorPowerSystemPlugin
- ARCHIVE DESTINATION lib
- LIBRARY DESTINATION lib
- RUNTIME DESTINATION bin
-)
+if(ROS_DISTRO STREQUAL "humble")
+ # Install the plugin library
+ install(TARGETS SolarPanelPlugin RadioisotopeThermalGeneratorPlugin RechargeableBatteryPlugin SensorPowerSystemPlugin
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+ RUNTIME DESTINATION bin
+ )
+endif()
ament_environment_hooks("${CMAKE_CURRENT_SOURCE_DIR}/hooks/${PROJECT_NAME}.dsv.in")
diff --git a/package.xml b/package.xml
index 7e96866..ea52ba9 100644
--- a/package.xml
+++ b/package.xml
@@ -7,19 +7,20 @@
Dharini Dutia
Apache-2.0
+ ros_environment
ament_cmake
- ign-cmake2
- ign-plugin1
- ign-common4
- ign-gazebo6
- ign-rendering6
- ign-sensors6
+ ign-cmake2
+ ign-plugin1
+ ign-common4
+ ign-gazebo6
+ ign-rendering6
+ ign-sensors6
xacro
ament_cmake
-
+