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'),