From 06fad573e535f1edf76e1a678f5c03307ca8c16d Mon Sep 17 00:00:00 2001 From: Daniel Mesham Date: Wed, 27 Sep 2023 10:11:13 +0200 Subject: [PATCH] Separate writing arguments files from the code generation and build Signed-off-by: Daniel Mesham --- rosidl_typesupport_c/CMakeLists.txt | 4 -- rosidl_typesupport_c/bin/rosidl_typesupport_c | 28 -------- ...dl_typesupport_c_generate_interfaces.cmake | 53 +-------------- ...rosidl_typesupport_c_write_arguments.cmake | 64 +++++++++++++++++++ .../rosidl_typesupport_c-extras.cmake.in | 11 ++-- .../rosidl_typesupport_c/__init__.py | 12 ++-- rosidl_typesupport_cpp/CMakeLists.txt | 4 -- .../bin/rosidl_typesupport_cpp | 28 -------- ..._typesupport_cpp_generate_interfaces.cmake | 53 +-------------- ...sidl_typesupport_cpp_write_arguments.cmake | 62 ++++++++++++++++++ .../rosidl_typesupport_cpp-extras.cmake.in | 10 +-- .../rosidl_typesupport_cpp/__init__.py | 12 ++-- 12 files changed, 155 insertions(+), 186 deletions(-) delete mode 100644 rosidl_typesupport_c/bin/rosidl_typesupport_c create mode 100644 rosidl_typesupport_c/cmake/rosidl_typesupport_c_write_arguments.cmake delete mode 100644 rosidl_typesupport_cpp/bin/rosidl_typesupport_cpp create mode 100644 rosidl_typesupport_cpp/cmake/rosidl_typesupport_cpp_write_arguments.cmake diff --git a/rosidl_typesupport_c/CMakeLists.txt b/rosidl_typesupport_c/CMakeLists.txt index 6191c72b..4fe553c3 100644 --- a/rosidl_typesupport_c/CMakeLists.txt +++ b/rosidl_typesupport_c/CMakeLists.txt @@ -142,10 +142,6 @@ ament_package( CONFIG_EXTRAS "rosidl_typesupport_c-extras.cmake.in" ) -install( - PROGRAMS bin/rosidl_typesupport_c - DESTINATION lib/rosidl_typesupport_c -) install( DIRECTORY cmake resource DESTINATION share/${PROJECT_NAME} diff --git a/rosidl_typesupport_c/bin/rosidl_typesupport_c b/rosidl_typesupport_c/bin/rosidl_typesupport_c deleted file mode 100644 index 7b6f80ef..00000000 --- a/rosidl_typesupport_c/bin/rosidl_typesupport_c +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env python3 - -import argparse -import sys - -from rosidl_typesupport_c import generate_c - - -def main(argv=sys.argv[1:]): - parser = argparse.ArgumentParser( - description='Generate the C type support to handle ROS messages.', - formatter_class=argparse.ArgumentDefaultsHelpFormatter) - parser.add_argument( - '--generator-arguments-file', - required=True, - help='The location of the file containing the generator arguments') - parser.add_argument( - '--typesupports', - required=True, - nargs='+', - help='The typesupports to be used') - args = parser.parse_args(argv) - - generate_c(args.generator_arguments_file, args.typesupports) - - -if __name__ == '__main__': - sys.exit(main()) diff --git a/rosidl_typesupport_c/cmake/rosidl_typesupport_c_generate_interfaces.cmake b/rosidl_typesupport_c/cmake/rosidl_typesupport_c_generate_interfaces.cmake index 52c38ae3..d454c3bb 100644 --- a/rosidl_typesupport_c/cmake/rosidl_typesupport_c_generate_interfaces.cmake +++ b/rosidl_typesupport_c/cmake/rosidl_typesupport_c_generate_interfaces.cmake @@ -1,4 +1,4 @@ -# Copyright 2016-2018 Open Source Robotics Foundation, Inc. +# Copyright 2016-2023 Open Source Robotics Foundation, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -34,57 +34,6 @@ foreach(_abs_idl_file ${rosidl_generate_interfaces_ABS_IDL_FILES}) ) endforeach() -set(_dependency_files "") -set(_dependencies "") -foreach(_pkg_name ${rosidl_generate_interfaces_DEPENDENCY_PACKAGE_NAMES}) - foreach(_idl_file ${${_pkg_name}_IDL_FILES}) - set(_abs_idl_file "${${_pkg_name}_DIR}/../${_idl_file}") - normalize_path(_abs_idl_file "${_abs_idl_file}") - list(APPEND _dependency_files "${_abs_idl_file}") - list(APPEND _dependencies "${_pkg_name}:${_abs_idl_file}") - endforeach() -endforeach() - -set(target_dependencies - "${rosidl_typesupport_c_BIN}" - ${rosidl_typesupport_c_GENERATOR_FILES} - "${rosidl_typesupport_c_TEMPLATE_DIR}/action__type_support.c.em" - "${rosidl_typesupport_c_TEMPLATE_DIR}/idl__type_support.cpp.em" - "${rosidl_typesupport_c_TEMPLATE_DIR}/msg__type_support.cpp.em" - "${rosidl_typesupport_c_TEMPLATE_DIR}/srv__type_support.cpp.em" - ${rosidl_generate_interfaces_ABS_IDL_FILES} - ${_dependency_files}) -foreach(dep ${target_dependencies}) - if(NOT EXISTS "${dep}") - message(FATAL_ERROR "Target dependency '${dep}' does not exist") - endif() -endforeach() - -set(generator_arguments_file "${CMAKE_CURRENT_BINARY_DIR}/rosidl_typesupport_c__arguments.json") -rosidl_write_generator_arguments( - "${generator_arguments_file}" - PACKAGE_NAME "${PROJECT_NAME}" - IDL_TUPLES "${rosidl_generate_interfaces_IDL_TUPLES}" - ROS_INTERFACE_DEPENDENCIES "${_dependencies}" - OUTPUT_DIR "${_output_path}" - TEMPLATE_DIR "${rosidl_typesupport_c_TEMPLATE_DIR}" - TARGET_DEPENDENCIES ${target_dependencies} -) - -find_package(Python3 REQUIRED COMPONENTS Interpreter) - -get_used_typesupports(typesupports "rosidl_typesupport_c") -add_custom_command( - OUTPUT ${_generated_sources} - COMMAND Python3::Interpreter - ARGS ${rosidl_typesupport_c_BIN} - --generator-arguments-file "${generator_arguments_file}" - --typesupports ${typesupports} - DEPENDS ${target_dependencies} - COMMENT "Generating C type support dispatch for ROS interfaces" - VERBATIM -) - set(_target_suffix "__rosidl_typesupport_c") add_library(${rosidl_generate_interfaces_TARGET}${_target_suffix} ${rosidl_typesupport_c_LIBRARY_TYPE} ${_generated_sources}) diff --git a/rosidl_typesupport_c/cmake/rosidl_typesupport_c_write_arguments.cmake b/rosidl_typesupport_c/cmake/rosidl_typesupport_c_write_arguments.cmake new file mode 100644 index 00000000..3096a6e9 --- /dev/null +++ b/rosidl_typesupport_c/cmake/rosidl_typesupport_c_write_arguments.cmake @@ -0,0 +1,64 @@ +# Copyright 2023 Open Source Robotics Foundation, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set(_output_path + "${CMAKE_CURRENT_BINARY_DIR}/rosidl_typesupport_c/${PROJECT_NAME}") + +set(_dependency_files "") +set(_dependencies "") +foreach(_pkg_name ${rosidl_generate_interfaces_DEPENDENCY_PACKAGE_NAMES}) + foreach(_idl_file ${${_pkg_name}_IDL_FILES}) + set(_abs_idl_file "${${_pkg_name}_DIR}/../${_idl_file}") + normalize_path(_abs_idl_file "${_abs_idl_file}") + list(APPEND _dependency_files "${_abs_idl_file}") + list(APPEND _dependencies "${_pkg_name}:${_abs_idl_file}") + endforeach() +endforeach() + +set(target_dependencies + ${rosidl_typesupport_c_GENERATOR_FILES} + "${rosidl_typesupport_c_TEMPLATE_DIR}/action__type_support.c.em" + "${rosidl_typesupport_c_TEMPLATE_DIR}/idl__type_support.cpp.em" + "${rosidl_typesupport_c_TEMPLATE_DIR}/msg__type_support.cpp.em" + "${rosidl_typesupport_c_TEMPLATE_DIR}/srv__type_support.cpp.em" + ${rosidl_generate_interfaces_ABS_IDL_FILES} + ${_dependency_files}) +foreach(dep ${target_dependencies}) + if(NOT EXISTS "${dep}") + message(FATAL_ERROR "Target dependency '${dep}' does not exist") + endif() +endforeach() + +get_used_typesupports(typesupports "rosidl_typesupport_c") + +set(additional_context_file "${CMAKE_CURRENT_BINARY_DIR}/rosidl_typesupport_c__additional_context.json") +rosidl_write_additional_context( + "${additional_context_file}" + TYPE_SUPPORTS ${typesupports} +) + +set(generator_arguments_file "${CMAKE_CURRENT_BINARY_DIR}/rosidl_typesupport_c__arguments.json") +rosidl_write_generator_arguments( + "${generator_arguments_file}" + PACKAGE_NAME "${PROJECT_NAME}" + IDL_TUPLES "${rosidl_generate_interfaces_IDL_TUPLES}" + ROS_INTERFACE_DEPENDENCIES "${_dependencies}" + OUTPUT_DIR "${_output_path}" + TEMPLATE_DIR "${rosidl_typesupport_c_TEMPLATE_DIR}" + TARGET_DEPENDENCIES ${target_dependencies} + GENERATOR_FILES "${rosidl_typesupport_c_GENERATOR_FILES}" + ADDITIONAL_CONTEXT_FILE "${additional_context_file}" +) + +list(APPEND rosidl_generator_arguments_files ${generator_arguments_file}) diff --git a/rosidl_typesupport_c/rosidl_typesupport_c-extras.cmake.in b/rosidl_typesupport_c/rosidl_typesupport_c-extras.cmake.in index 8afe3857..bb8f6638 100644 --- a/rosidl_typesupport_c/rosidl_typesupport_c-extras.cmake.in +++ b/rosidl_typesupport_c/rosidl_typesupport_c-extras.cmake.in @@ -14,16 +14,17 @@ foreach(_typesupport ${_typesupports}) endforeach() find_package(ament_cmake_core QUIET REQUIRED) + +ament_register_extension( + "rosidl_write_generator_arguments_extensions" + "rosidl_typesupport_c" + "rosidl_typesupport_c_write_arguments.cmake") + ament_register_extension( "rosidl_generate_idl_interfaces" "rosidl_typesupport_c" "rosidl_typesupport_c_generate_interfaces.cmake") -set(rosidl_typesupport_c_BIN - "${rosidl_typesupport_c_DIR}/../../../lib/rosidl_typesupport_c/rosidl_typesupport_c") -normalize_path(rosidl_typesupport_c_BIN - "${rosidl_typesupport_c_BIN}") - set(rosidl_typesupport_c_GENERATOR_FILES "${rosidl_typesupport_c_DIR}/../../../@PYTHON_INSTALL_DIR@/rosidl_typesupport_c/__init__.py") normalize_path(rosidl_typesupport_c_GENERATOR_FILES diff --git a/rosidl_typesupport_c/rosidl_typesupport_c/__init__.py b/rosidl_typesupport_c/rosidl_typesupport_c/__init__.py index 658435cf..928b395a 100644 --- a/rosidl_typesupport_c/rosidl_typesupport_c/__init__.py +++ b/rosidl_typesupport_c/rosidl_typesupport_c/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2016-2018 Open Source Robotics Foundation, Inc. +# Copyright 2016-2023 Open Source Robotics Foundation, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,6 +15,12 @@ from rosidl_pycommon import generate_files +def get_template_mapping(): + return { + 'idl__type_support.cpp.em': '%s__type_support.cpp', + } + + def generate_c(generator_arguments_file, type_supports): """ Generate the C type support to handle ROS messages. @@ -22,9 +28,7 @@ def generate_c(generator_arguments_file, type_supports): :param generator_arguments_file: Path location of the file containing the generator arguments :param type_support: List of type supports to be used """ - mapping = { - 'idl__type_support.cpp.em': '%s__type_support.cpp', - } + mapping = get_template_mapping() return generate_files( generator_arguments_file, mapping, additional_context={'type_supports': type_supports}) diff --git a/rosidl_typesupport_cpp/CMakeLists.txt b/rosidl_typesupport_cpp/CMakeLists.txt index bf6518ac..a25c367d 100644 --- a/rosidl_typesupport_cpp/CMakeLists.txt +++ b/rosidl_typesupport_cpp/CMakeLists.txt @@ -140,10 +140,6 @@ ament_package( CONFIG_EXTRAS "rosidl_typesupport_cpp-extras.cmake.in" ) -install( - PROGRAMS bin/rosidl_typesupport_cpp - DESTINATION lib/rosidl_typesupport_cpp -) install( DIRECTORY cmake resource DESTINATION share/${PROJECT_NAME} diff --git a/rosidl_typesupport_cpp/bin/rosidl_typesupport_cpp b/rosidl_typesupport_cpp/bin/rosidl_typesupport_cpp deleted file mode 100644 index d6812140..00000000 --- a/rosidl_typesupport_cpp/bin/rosidl_typesupport_cpp +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env python3 - -import argparse -import sys - -from rosidl_typesupport_cpp import generate_cpp - - -def main(argv=sys.argv[1:]): - parser = argparse.ArgumentParser( - description='Generate the C++ type support to handle ROS messages.', - formatter_class=argparse.ArgumentDefaultsHelpFormatter) - parser.add_argument( - '--generator-arguments-file', - required=True, - help='The location of the file containing the generator arguments') - parser.add_argument( - '--typesupports', - required=True, - nargs='+', - help='The typesupports to be used') - args = parser.parse_args(argv) - - generate_cpp(args.generator_arguments_file, args.typesupports) - - -if __name__ == '__main__': - sys.exit(main()) diff --git a/rosidl_typesupport_cpp/cmake/rosidl_typesupport_cpp_generate_interfaces.cmake b/rosidl_typesupport_cpp/cmake/rosidl_typesupport_cpp_generate_interfaces.cmake index 132f33b0..319583ff 100644 --- a/rosidl_typesupport_cpp/cmake/rosidl_typesupport_cpp_generate_interfaces.cmake +++ b/rosidl_typesupport_cpp/cmake/rosidl_typesupport_cpp_generate_interfaces.cmake @@ -1,4 +1,4 @@ -# Copyright 2016-2018 Open Source Robotics Foundation, Inc. +# Copyright 2016-2023 Open Source Robotics Foundation, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -31,57 +31,6 @@ foreach(_abs_idl_file ${rosidl_generate_interfaces_ABS_IDL_FILES}) ) endforeach() -set(_dependency_files "") -set(_dependencies "") -foreach(_pkg_name ${rosidl_generate_interfaces_DEPENDENCY_PACKAGE_NAMES}) - foreach(_idl_file ${${_pkg_name}_IDL_FILES}) - set(_abs_idl_file "${${_pkg_name}_DIR}/../${_idl_file}") - normalize_path(_abs_idl_file "${_abs_idl_file}") - list(APPEND _dependency_files "${_abs_idl_file}") - list(APPEND _dependencies "${_pkg_name}:${_abs_idl_file}") - endforeach() -endforeach() - -set(target_dependencies - "${rosidl_typesupport_cpp_BIN}" - ${rosidl_typesupport_cpp_GENERATOR_FILES} - "${rosidl_typesupport_cpp_TEMPLATE_DIR}/action__type_support.cpp.em" - "${rosidl_typesupport_cpp_TEMPLATE_DIR}/idl__type_support.cpp.em" - "${rosidl_typesupport_cpp_TEMPLATE_DIR}/msg__type_support.cpp.em" - "${rosidl_typesupport_cpp_TEMPLATE_DIR}/srv__type_support.cpp.em" - ${rosidl_generate_interfaces_ABS_IDL_FILES} - ${_dependency_files}) -foreach(dep ${target_dependencies}) - if(NOT EXISTS "${dep}") - message(FATAL_ERROR "Target dependency '${dep}' does not exist") - endif() -endforeach() - -set(generator_arguments_file "${CMAKE_CURRENT_BINARY_DIR}/rosidl_typesupport_cpp__arguments.json") -rosidl_write_generator_arguments( - "${generator_arguments_file}" - PACKAGE_NAME "${PROJECT_NAME}" - IDL_TUPLES "${rosidl_generate_interfaces_IDL_TUPLES}" - ROS_INTERFACE_DEPENDENCIES "${_dependencies}" - OUTPUT_DIR "${_output_path}" - TEMPLATE_DIR "${rosidl_typesupport_cpp_TEMPLATE_DIR}" - TARGET_DEPENDENCIES ${target_dependencies} -) - -find_package(Python3 REQUIRED COMPONENTS Interpreter) - -get_used_typesupports(typesupports "rosidl_typesupport_cpp") -add_custom_command( - OUTPUT ${_generated_sources} - COMMAND Python3::Interpreter - ARGS ${rosidl_typesupport_cpp_BIN} - --generator-arguments-file "${generator_arguments_file}" - --typesupports ${typesupports} - DEPENDS ${target_dependencies} - COMMENT "Generating C++ type support dispatch for ROS interfaces" - VERBATIM -) - set(_target_suffix "__rosidl_typesupport_cpp") add_library(${rosidl_generate_interfaces_TARGET}${_target_suffix} ${rosidl_typesupport_cpp_LIBRARY_TYPE} ${_generated_sources}) diff --git a/rosidl_typesupport_cpp/cmake/rosidl_typesupport_cpp_write_arguments.cmake b/rosidl_typesupport_cpp/cmake/rosidl_typesupport_cpp_write_arguments.cmake new file mode 100644 index 00000000..516fd30a --- /dev/null +++ b/rosidl_typesupport_cpp/cmake/rosidl_typesupport_cpp_write_arguments.cmake @@ -0,0 +1,62 @@ +# Copyright 2023 Open Source Robotics Foundation, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set(_output_path + "${CMAKE_CURRENT_BINARY_DIR}/rosidl_typesupport_cpp/${PROJECT_NAME}") + +set(_dependency_files "") +set(_dependencies "") +foreach(_pkg_name ${rosidl_generate_interfaces_DEPENDENCY_PACKAGE_NAMES}) + foreach(_idl_file ${${_pkg_name}_IDL_FILES}) + set(_abs_idl_file "${${_pkg_name}_DIR}/../${_idl_file}") + normalize_path(_abs_idl_file "${_abs_idl_file}") + list(APPEND _dependency_files "${_abs_idl_file}") + list(APPEND _dependencies "${_pkg_name}:${_abs_idl_file}") + endforeach() +endforeach() + +set(target_dependencies + ${rosidl_typesupport_cpp_GENERATOR_FILES} + "${rosidl_typesupport_cpp_TEMPLATE_DIR}/action__type_support.cpp.em" + "${rosidl_typesupport_cpp_TEMPLATE_DIR}/idl__type_support.cpp.em" + "${rosidl_typesupport_cpp_TEMPLATE_DIR}/msg__type_support.cpp.em" + "${rosidl_typesupport_cpp_TEMPLATE_DIR}/srv__type_support.cpp.em" + ${rosidl_generate_interfaces_ABS_IDL_FILES} + ${_dependency_files}) +foreach(dep ${target_dependencies}) + if(NOT EXISTS "${dep}") + message(FATAL_ERROR "Target dependency '${dep}' does not exist") + endif() +endforeach() + +set(additional_context_file "${CMAKE_CURRENT_BINARY_DIR}/rosidl_typesupport_cpp__additional_context.json") +rosidl_write_additional_context( + "${additional_context_file}" + TYPE_SUPPORTS ${typesupports} +) + +set(generator_arguments_file "${CMAKE_CURRENT_BINARY_DIR}/rosidl_typesupport_cpp__arguments.json") +rosidl_write_generator_arguments( + "${generator_arguments_file}" + PACKAGE_NAME "${PROJECT_NAME}" + IDL_TUPLES "${rosidl_generate_interfaces_IDL_TUPLES}" + ROS_INTERFACE_DEPENDENCIES "${_dependencies}" + OUTPUT_DIR "${_output_path}" + TEMPLATE_DIR "${rosidl_typesupport_cpp_TEMPLATE_DIR}" + TARGET_DEPENDENCIES ${target_dependencies} + GENERATOR_FILES "${rosidl_typesupport_cpp_GENERATOR_FILES}" + ADDITIONAL_CONTEXT_FILE ${additional_context_file} +) + +list(APPEND rosidl_generator_arguments_files ${generator_arguments_file}) diff --git a/rosidl_typesupport_cpp/rosidl_typesupport_cpp-extras.cmake.in b/rosidl_typesupport_cpp/rosidl_typesupport_cpp-extras.cmake.in index 50609cef..15b01a26 100644 --- a/rosidl_typesupport_cpp/rosidl_typesupport_cpp-extras.cmake.in +++ b/rosidl_typesupport_cpp/rosidl_typesupport_cpp-extras.cmake.in @@ -14,16 +14,16 @@ foreach(_typesupport ${_typesupports}) endforeach() find_package(ament_cmake_core QUIET REQUIRED) + +ament_register_extension( + "rosidl_write_generator_arguments_extensions" + "rosidl_typesupport_cpp" + "rosidl_typesupport_cpp_write_arguments.cmake") ament_register_extension( "rosidl_generate_idl_interfaces" "rosidl_typesupport_cpp" "rosidl_typesupport_cpp_generate_interfaces.cmake") -set(rosidl_typesupport_cpp_BIN - "${rosidl_typesupport_cpp_DIR}/../../../lib/rosidl_typesupport_cpp/rosidl_typesupport_cpp") -normalize_path(rosidl_typesupport_cpp_BIN - "${rosidl_typesupport_cpp_BIN}") - set(rosidl_typesupport_cpp_GENERATOR_FILES "${rosidl_typesupport_cpp_DIR}/../../../@PYTHON_INSTALL_DIR@/rosidl_typesupport_cpp/__init__.py") normalize_path(rosidl_typesupport_cpp_GENERATOR_FILES diff --git a/rosidl_typesupport_cpp/rosidl_typesupport_cpp/__init__.py b/rosidl_typesupport_cpp/rosidl_typesupport_cpp/__init__.py index f21ad1d8..878eddcc 100644 --- a/rosidl_typesupport_cpp/rosidl_typesupport_cpp/__init__.py +++ b/rosidl_typesupport_cpp/rosidl_typesupport_cpp/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2016-2018 Open Source Robotics Foundation, Inc. +# Copyright 2016-2023 Open Source Robotics Foundation, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,6 +15,12 @@ from rosidl_pycommon import generate_files +def get_template_mapping(): + return { + 'idl__type_support.cpp.em': '%s__type_support.cpp', + } + + def generate_cpp(generator_arguments_file, type_supports): """ Generate the c++ type support to handle ROS messages. @@ -22,9 +28,7 @@ def generate_cpp(generator_arguments_file, type_supports): :param generator_arguments_file: Path location of the file containing the generator arguments :param type_support: List of type supports to be used """ - mapping = { - 'idl__type_support.cpp.em': '%s__type_support.cpp', - } + mapping = get_template_mapping() return generate_files( generator_arguments_file, mapping, additional_context={'type_supports': type_supports})