Skip to content

Commit 34addab

Browse files
committed
Support available typesupport specification in CLI extensions
Signed-off-by: Michel Hidalgo <[email protected]>
1 parent 1fb80ab commit 34addab

File tree

4 files changed

+26
-10
lines changed

4 files changed

+26
-10
lines changed

rosidl_typesupport_c/rosidl_typesupport_c/cli.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,13 @@
2727

2828
class GenerateCTypesupport(GenerateCommandExtension):
2929

30+
def __init__(self, name, *, typesupport_implementations=None):
31+
super().__init__(name)
32+
if typesupport_implementations is None:
33+
typesupport_implementations = list(
34+
get_resources('rosidl_typesupport_c'))
35+
self.__typesupport_implementations = typesupport_implementations
36+
3037
def generate(
3138
self,
3239
package_name,
@@ -76,9 +83,6 @@ def generate(
7683
generated_files.append(visibility_control_file_path)
7784

7885
# Generate typesupport code
79-
typesupport_implementations = list(
80-
get_resources('rosidl_typesupport_c'))
81-
8286
with legacy_generator_arguments_file(
8387
package_name=package_name,
8488
interface_files=idl_interface_files,
@@ -88,7 +92,7 @@ def generate(
8892
) as path_to_arguments_file:
8993
generated_files.extend(generate_c(
9094
path_to_arguments_file,
91-
typesupport_implementations
95+
self.__typesupport_implementations
9296
))
9397

9498
return generated_files

rosidl_typesupport_c/test/test_cli_extension.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,19 @@
1414

1515
import pathlib
1616

17+
from ament_index_python import get_resources
1718
from rosidl_cli.command.generate.api import generate
1819

1920
TEST_DIR = str(pathlib.Path(__file__).parent)
2021

2122

2223
def test_cli_extension_for_smoke(tmp_path):
24+
ts = 'c[typesupport_implementations:{}]'.format(
25+
list(get_resources('rosidl_typesupport_c'))
26+
)
2327
generate(
2428
package_name='rosidl_typesupport_c',
2529
interface_files=[TEST_DIR + ':msg/Test.msg'],
26-
typesupports=['c'],
30+
typesupports=[ts],
2731
output_path=tmp_path
2832
)

rosidl_typesupport_cpp/rosidl_typesupport_cpp/cli.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,13 @@
2626

2727
class GenerateCppTypesupport(GenerateCommandExtension):
2828

29+
def __init__(self, name, *, typesupport_implementations=None):
30+
super().__init__(name)
31+
if typesupport_implementations is None:
32+
typesupport_implementations = list(
33+
get_resources('rosidl_typesupport_cpp'))
34+
self.__typesupport_implementations = typesupport_implementations
35+
2936
def generate(
3037
self,
3138
package_name,
@@ -56,9 +63,6 @@ def generate(
5663
))
5764

5865
# Generate typesupport code
59-
typesupport_implementations = list(
60-
get_resources('rosidl_typesupport_cpp'))
61-
6266
with legacy_generator_arguments_file(
6367
package_name=package_name,
6468
interface_files=idl_interface_files,
@@ -68,5 +72,5 @@ def generate(
6872
) as path_to_arguments_file:
6973
return generate_cpp(
7074
path_to_arguments_file,
71-
typesupport_implementations
75+
self.__typesupport_implementations
7276
)

rosidl_typesupport_cpp/test/test_cli_extension.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,19 @@
1414

1515
import pathlib
1616

17+
from ament_index_python import get_resources
1718
from rosidl_cli.command.generate.api import generate
1819

1920
TEST_DIR = str(pathlib.Path(__file__).parent)
2021

2122

2223
def test_cli_extension_for_smoke(tmp_path):
24+
ts = 'cpp[typesupport_implementations:{}]'.format(
25+
list(get_resources('rosidl_typesupport_cpp'))
26+
)
2327
generate(
2428
package_name='rosidl_typesupport_cpp',
2529
interface_files=[TEST_DIR + ':msg/Test.msg'],
26-
typesupports=['cpp'],
30+
typesupports=[ts],
2731
output_path=tmp_path
2832
)

0 commit comments

Comments
 (0)