Skip to content

Commit 047f483

Browse files
authored
Swapped usage of rosidl_cmake over to the new rosidl_pycommon. (#297)
* Swapped usage of rosidl_cmake over to the new rosidl_pycommon. As of [rosidl 3.3.0](ros2/rosidl@9348ce9), the rosidl_cmake Python module was moved to a new rosidl_pycommon package and the Python module in rosidl_cmake was deprecated. * Support builds from older ROS 2 distros. * Fixed build for rolling * Added `test_depend` conditional inclusion as well. * Swap to a more elegant check * PR Feedback --------- Co-authored-by: Sam Privett <[email protected]>
1 parent 3d22cbe commit 047f483

File tree

3 files changed

+24
-18
lines changed

3 files changed

+24
-18
lines changed

rosidl_generator_rs/CMakeLists.txt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,15 @@ project(rosidl_generator_rs)
44

55
find_package(ament_cmake REQUIRED)
66
find_package(ament_cmake_python REQUIRED)
7-
find_package(rosidl_cmake REQUIRED)
87
find_package(rosidl_generator_c REQUIRED)
98
find_package(rosidl_typesupport_interface REQUIRED)
109
find_package(rosidl_typesupport_introspection_c REQUIRED)
1110

12-
ament_export_dependencies(rosidl_cmake)
11+
if("$ENV{ROS_DISTRO}" STRLESS_EQUAL "humble")
12+
find_package(rosidl_cmake REQUIRED)
13+
ament_export_dependencies(rosidl_cmake)
14+
endif()
15+
1316
ament_export_dependencies(rmw)
1417
ament_export_dependencies(rosidl_generator_c)
1518

rosidl_generator_rs/package.xml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,14 @@
99
<author email="[email protected]">Esteve Fernandez</author>
1010

1111
<buildtool_depend>ament_cmake</buildtool_depend>
12-
12+
<buildtool_depend>ros_environment</buildtool_depend>
13+
1314
<buildtool_depend>rosidl_runtime_rs</buildtool_depend>
1415

1516
<buildtool_export_depend>ament_cmake</buildtool_export_depend>
16-
<buildtool_export_depend>rosidl_cmake</buildtool_export_depend>
17+
<buildtool_export_depend>ros_environment</buildtool_export_depend>
18+
<buildtool_export_depend condition="humble >= $ROS_DISTRO">rosidl_cmake</buildtool_export_depend>
19+
<buildtool_export_depend condition="$ROS_DISTRO > humble">rosidl_pycommon</buildtool_export_depend>
1720
<buildtool_export_depend>rosidl_runtime_rs</buildtool_export_depend>
1821
<buildtool_export_depend>rosidl_typesupport_c</buildtool_export_depend>
1922
<buildtool_export_depend>rosidl_typesupport_interface</buildtool_export_depend>
@@ -26,7 +29,8 @@
2629
<test_depend>ament_cmake_gtest</test_depend>
2730
<test_depend>ament_lint_auto</test_depend>
2831
<test_depend>ament_lint_common</test_depend>
29-
<test_depend>rosidl_cmake</test_depend>
32+
<test_depend condition="humble >= $ROS_DISTRO">rosidl_cmake</test_depend>
33+
<test_depend condition="$ROS_DISTRO > humble">rosidl_pycommon</test_depend>
3034
<test_depend>rosidl_generator_c</test_depend>
3135

3236
<member_of_group>rosidl_generator_packages</member_of_group>

rosidl_generator_rs/rosidl_generator_rs/__init__.py

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,10 @@
1818

1919
from pathlib import Path
2020

21-
from rosidl_cmake import convert_camel_case_to_lower_case_underscore
22-
from rosidl_cmake import expand_template
23-
from rosidl_cmake import generate_files
24-
from rosidl_cmake import get_newest_modification_time
25-
from rosidl_cmake import read_generator_arguments
21+
if os.environ['ROS_DISTRO'] <= 'humble':
22+
import rosidl_cmake as rosidl_pycommon
23+
else:
24+
import rosidl_pycommon
2625

2726
from rosidl_parser.definition import AbstractGenericString
2827
from rosidl_parser.definition import AbstractNestedType
@@ -53,7 +52,7 @@ def convert_lower_case_underscore_to_camel_case(word):
5352

5453

5554
def generate_rs(generator_arguments_file, typesupport_impls):
56-
args = read_generator_arguments(generator_arguments_file)
55+
args = rosidl_pycommon.read_generator_arguments(generator_arguments_file)
5756
package_name = args['package_name']
5857

5958
# expand init modules for each directory
@@ -108,7 +107,7 @@ def generate_rs(generator_arguments_file, typesupport_impls):
108107
'constant_value_to_rs': constant_value_to_rs,
109108
'value_to_rs': value_to_rs,
110109
'convert_camel_case_to_lower_case_underscore':
111-
convert_camel_case_to_lower_case_underscore,
110+
rosidl_pycommon.convert_camel_case_to_lower_case_underscore,
112111
'convert_lower_case_underscore_to_camel_case':
113112
convert_lower_case_underscore_to_camel_case,
114113
'msg_specs': [],
@@ -118,7 +117,7 @@ def generate_rs(generator_arguments_file, typesupport_impls):
118117
'interface_path': idl_rel_path,
119118
}
120119

121-
latest_target_timestamp = get_newest_modification_time(
120+
latest_target_timestamp = rosidl_pycommon.get_newest_modification_time(
122121
args['target_dependencies'])
123122

124123
for message in idl_content.get_elements_of_type(Message):
@@ -132,7 +131,7 @@ def generate_rs(generator_arguments_file, typesupport_impls):
132131
for generated_filename in generated_filenames:
133132
generated_file = os.path.join(args['output_dir'],
134133
generated_filename % 'msg')
135-
expand_template(
134+
rosidl_pycommon.expand_template(
136135
os.path.join(template_dir, template_file),
137136
data.copy(),
138137
generated_file,
@@ -143,13 +142,13 @@ def generate_rs(generator_arguments_file, typesupport_impls):
143142
for generated_filename in generated_filenames:
144143
generated_file = os.path.join(args['output_dir'],
145144
generated_filename % 'srv')
146-
expand_template(
145+
rosidl_pycommon.expand_template(
147146
os.path.join(template_dir, template_file),
148147
data.copy(),
149148
generated_file,
150149
minimum_timestamp=latest_target_timestamp)
151150

152-
expand_template(
151+
rosidl_pycommon.expand_template(
153152
os.path.join(template_dir, 'lib.rs.em'),
154153
data.copy(),
155154
os.path.join(args['output_dir'], 'rust/src/lib.rs'),
@@ -160,13 +159,13 @@ def generate_rs(generator_arguments_file, typesupport_impls):
160159
'package_name': args['package_name'],
161160
'package_version': args['package_version'],
162161
}
163-
expand_template(
162+
rosidl_pycommon.expand_template(
164163
os.path.join(template_dir, 'Cargo.toml.em'),
165164
cargo_toml_data,
166165
os.path.join(args['output_dir'], 'rust/Cargo.toml'),
167166
minimum_timestamp=latest_target_timestamp)
168167

169-
expand_template(
168+
rosidl_pycommon.expand_template(
170169
os.path.join(template_dir, 'build.rs.em'),
171170
{},
172171
os.path.join(args['output_dir'], 'rust/build.rs'),

0 commit comments

Comments
 (0)