1- cmake_minimum_required (VERSION 3.14 )
1+ cmake_minimum_required (VERSION 3.22 )
22set (CMAKE_VERBOSE_MAKEFILE True )
33
44project (odri_gz_ros2_control)
55
6- # Default to C11
7- if (NOT CMAKE_C_STANDARD )
8- set (CMAKE_C_STANDARD 11)
9- endif ()
10- # Default to C++17
11- if (NOT CMAKE_CXX_STANDARD )
12- set (CMAKE_CXX_STANDARD 17)
13- endif ()
14-
156# Compiler options
167if (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
178 add_compile_options (-Wall -Wextra -Wpedantic )
@@ -26,54 +17,30 @@ find_package(pluginlib REQUIRED)
2617find_package (rclcpp REQUIRED )
2718find_package (yaml_cpp_vendor REQUIRED )
2819
29- # Detects Ubuntu release
30- find_program (LSB_RELEASE_EXEC lsb_release )
31- execute_process (COMMAND ${LSB_RELEASE_EXEC} -c
32- OUTPUT_VARIABLE LSB_RELEASE_CODENAME_PPREFIX
33- OUTPUT_STRIP_TRAILING_WHITESPACE
34- )
35-
36- # Remove prefix Codename:
37- string (REGEX REPLACE "Codename:\t " "" LSB_RELEASE_CODENAME ${LSB_RELEASE_CODENAME_PPREFIX} )
38- message (STATUS "LSB_RELEASE_CODENAME=${LSB_RELEASE_CODENAME} " )
39-
40- if (${LSB_RELEASE_CODENAME} STREQUAL "jammy" )
41- # If Jammy is detected uses Gazebo Fortress
42- find_package (ignition-gazebo6 REQUIRED )
43- set (GZ_SIM_VER ${ignition-gazebo6_VERSION_MAJOR} )
44- message (STATUS "Compiling against Gazebo Fortress" )
45- find_package (ignition-plugin1 REQUIRED )
46- set (GZ_PLUGIN_VER ${ignition-plugin1_VERSION_MAJOR} )
47- set (GZ_PLUGIN ignition-plugin${GZ_PLUGIN_VER} ::register)
48- set (GZ_SIM ignition-gazebo${GZ_SIM_VER} ::core)
49- elseif (${LSB_RELEASE_CODENAME} STREQUAL "noble" )
50- # If Jammy is detected uses Harmonic
51- find_package (gz_sim_vendor )
52- find_package (gz-sim )
53-
54- find_package (gz_plugin_vendor )
55- find_package (gz-plugin )
20+ if (NOT DEFINED ENV{GZ_VERSION} OR "$ENV{GZ_VERSION} " STREQUAL "harmonic" )
21+ set (GZ_SIM "gz-sim8" )
22+ set (GZ_PLUGIN "gz-plugin2" )
23+ else ()
24+ message (FATAL_ERROR "Gazebo $ENV{GZ_VERSION} is not yet supported" )
5625endif ()
5726
27+ find_package ("${GZ_SIM} " REQUIRED )
28+ find_package ("${GZ_PLUGIN} " REQUIRED )
29+
5830include_directories (include )
5931
6032add_library (${PROJECT_NAME } -system SHARED
6133 src/gz_ros2_control_plugin.cpp
6234)
6335
64- if (${LSB_RELEASE_CODENAME} STREQUAL "jammy" )
65- target_link_libraries (${PROJECT_NAME } -system
66- ${GZ_SIM}
67- ${GZ_PLUGIN}
68- )
69- elseif (${LSB_RELEASE_CODENAME} STREQUAL "noble" )
70- message (STATUS "Add target ${PROJECT_NAME } -system using noble" )
71- target_compile_definitions (${PROJECT_NAME } -system PUBLIC GZ_SIM_8 )
36+ if (NOT DEFINED ENV{GZ_VERSION} OR "$ENV{GZ_VERSION} " STREQUAL "harmonic" )
37+ target_compile_definitions (${PROJECT_NAME } -system PUBLIC GZ_SIM_8 )
38+ endif ()
39+
7240target_link_libraries (${PROJECT_NAME } -system
73- gz-sim::gz-sim
74- gz-plugin ::register
41+ " ${GZ_SIM} :: ${GZ_SIM} "
42+ " ${GZ_PLUGIN} ::register"
7543)
76- endif ()
7744
7845ament_target_dependencies (${PROJECT_NAME } -system
7946 ament_index_cpp
@@ -96,16 +63,13 @@ ament_target_dependencies(gz_hardware_odri_plugins
9663 rclcpp
9764)
9865
99- if (${LSB_RELEASE_CODENAME} STREQUAL "jammy" )
100- target_link_libraries (gz_hardware_odri_plugins
101- ${GZ_SIM}
102- )
103- elseif (${LSB_RELEASE_CODENAME} STREQUAL "noble" )
104- target_compile_definitions (gz_hardware_odri_plugins PUBLIC GZ_SIM_8 )
66+ if (NOT DEFINED ENV{GZ_VERSION} OR "$ENV{GZ_VERSION} " STREQUAL "harmonic" )
67+ target_compile_definitions (gz_hardware_odri_plugins PUBLIC GZ_SIM_8 )
68+ endif ()
69+
10570target_link_libraries (gz_hardware_odri_plugins
106- gz-sim::gz-sim
71+ " ${GZ_SIM} :: ${GZ_SIM} "
10772)
108- endif ()
10973
11074## Install
11175install (TARGETS
0 commit comments