diff --git a/rosidl_generator_rs/CMakeLists.txt b/rosidl_generator_rs/CMakeLists.txt
index 9a29958f..64e5577a 100644
--- a/rosidl_generator_rs/CMakeLists.txt
+++ b/rosidl_generator_rs/CMakeLists.txt
@@ -4,12 +4,15 @@ project(rosidl_generator_rs)
find_package(ament_cmake REQUIRED)
find_package(ament_cmake_python REQUIRED)
-find_package(rosidl_cmake REQUIRED)
find_package(rosidl_generator_c REQUIRED)
find_package(rosidl_typesupport_interface REQUIRED)
find_package(rosidl_typesupport_introspection_c REQUIRED)
-ament_export_dependencies(rosidl_cmake)
+if("$ENV{ROS_DISTRO}" STRLESS_EQUAL "humble")
+ find_package(rosidl_cmake REQUIRED)
+ ament_export_dependencies(rosidl_cmake)
+endif()
+
ament_export_dependencies(rmw)
ament_export_dependencies(rosidl_generator_c)
diff --git a/rosidl_generator_rs/package.xml b/rosidl_generator_rs/package.xml
index c12e46ca..18ff07f0 100644
--- a/rosidl_generator_rs/package.xml
+++ b/rosidl_generator_rs/package.xml
@@ -9,11 +9,14 @@
Esteve Fernandez
ament_cmake
-
+ ros_environment
+
rosidl_runtime_rs
ament_cmake
- rosidl_cmake
+ ros_environment
+ rosidl_cmake
+ rosidl_pycommon
rosidl_runtime_rs
rosidl_typesupport_c
rosidl_typesupport_interface
@@ -26,7 +29,8 @@
ament_cmake_gtest
ament_lint_auto
ament_lint_common
- rosidl_cmake
+ rosidl_cmake
+ rosidl_pycommon
rosidl_generator_c
rosidl_generator_packages
diff --git a/rosidl_generator_rs/rosidl_generator_rs/__init__.py b/rosidl_generator_rs/rosidl_generator_rs/__init__.py
index 679fe965..ae61a3e9 100644
--- a/rosidl_generator_rs/rosidl_generator_rs/__init__.py
+++ b/rosidl_generator_rs/rosidl_generator_rs/__init__.py
@@ -18,11 +18,10 @@
from pathlib import Path
-from rosidl_cmake import convert_camel_case_to_lower_case_underscore
-from rosidl_cmake import expand_template
-from rosidl_cmake import generate_files
-from rosidl_cmake import get_newest_modification_time
-from rosidl_cmake import read_generator_arguments
+if os.environ['ROS_DISTRO'] <= 'humble':
+ import rosidl_cmake as rosidl_pycommon
+else:
+ import rosidl_pycommon
from rosidl_parser.definition import AbstractGenericString
from rosidl_parser.definition import AbstractNestedType
@@ -53,7 +52,7 @@ def convert_lower_case_underscore_to_camel_case(word):
def generate_rs(generator_arguments_file, typesupport_impls):
- args = read_generator_arguments(generator_arguments_file)
+ args = rosidl_pycommon.read_generator_arguments(generator_arguments_file)
package_name = args['package_name']
# expand init modules for each directory
@@ -108,7 +107,7 @@ def generate_rs(generator_arguments_file, typesupport_impls):
'constant_value_to_rs': constant_value_to_rs,
'value_to_rs': value_to_rs,
'convert_camel_case_to_lower_case_underscore':
- convert_camel_case_to_lower_case_underscore,
+ rosidl_pycommon.convert_camel_case_to_lower_case_underscore,
'convert_lower_case_underscore_to_camel_case':
convert_lower_case_underscore_to_camel_case,
'msg_specs': [],
@@ -118,7 +117,7 @@ def generate_rs(generator_arguments_file, typesupport_impls):
'interface_path': idl_rel_path,
}
- latest_target_timestamp = get_newest_modification_time(
+ latest_target_timestamp = rosidl_pycommon.get_newest_modification_time(
args['target_dependencies'])
for message in idl_content.get_elements_of_type(Message):
@@ -132,7 +131,7 @@ def generate_rs(generator_arguments_file, typesupport_impls):
for generated_filename in generated_filenames:
generated_file = os.path.join(args['output_dir'],
generated_filename % 'msg')
- expand_template(
+ rosidl_pycommon.expand_template(
os.path.join(template_dir, template_file),
data.copy(),
generated_file,
@@ -143,13 +142,13 @@ def generate_rs(generator_arguments_file, typesupport_impls):
for generated_filename in generated_filenames:
generated_file = os.path.join(args['output_dir'],
generated_filename % 'srv')
- expand_template(
+ rosidl_pycommon.expand_template(
os.path.join(template_dir, template_file),
data.copy(),
generated_file,
minimum_timestamp=latest_target_timestamp)
- expand_template(
+ rosidl_pycommon.expand_template(
os.path.join(template_dir, 'lib.rs.em'),
data.copy(),
os.path.join(args['output_dir'], 'rust/src/lib.rs'),
@@ -160,13 +159,13 @@ def generate_rs(generator_arguments_file, typesupport_impls):
'package_name': args['package_name'],
'package_version': args['package_version'],
}
- expand_template(
+ rosidl_pycommon.expand_template(
os.path.join(template_dir, 'Cargo.toml.em'),
cargo_toml_data,
os.path.join(args['output_dir'], 'rust/Cargo.toml'),
minimum_timestamp=latest_target_timestamp)
- expand_template(
+ rosidl_pycommon.expand_template(
os.path.join(template_dir, 'build.rs.em'),
{},
os.path.join(args['output_dir'], 'rust/build.rs'),