From 43418dd79418b5a6444b61434740fa35d3658ab1 Mon Sep 17 00:00:00 2001 From: Bas Zalmstra <4995967+baszalmstra@users.noreply.github.com> Date: Mon, 26 Oct 2026 12:14:27 +0100 Subject: [PATCH 1/5] humble, jazzy: rosidl_generator_py: write the egg-info after generating the code ament_python_install_package() copies the generated Python package into the build directory and runs `setup.py egg_info` on it, but nothing orders that copy after the code generation. The copy runs as soon as the build starts, when the directory only holds the __init__.py written at configure time, so the published egg-info lists only that file: SOURCES.txt of ros2-action-tutorials-interfaces has no action/__init__.py or action/_fibonacci.py, and importlib.metadata.files() misses every generated module. Make the copy (or symlink) target depend on the generation target. Rolling fixed this with ament/ament_cmake#587 and ros2/rosidl_python#254, which lyrical and rolling already ship; neither was backported to humble or jazzy. --- .../patch/ros2-rosidl-generator-py.patch | 36 +++++++++++++++---- .../patch/ros2-rosidl-generator-py.patch | 28 +++++++++++++-- 2 files changed, 54 insertions(+), 10 deletions(-) diff --git a/distros/humble/patch/ros2-rosidl-generator-py.patch b/distros/humble/patch/ros2-rosidl-generator-py.patch index 94d9d9615..cde241b5a 100644 --- a/distros/humble/patch/ros2-rosidl-generator-py.patch +++ b/distros/humble/patch/ros2-rosidl-generator-py.patch @@ -1,5 +1,5 @@ diff --git a/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake b/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake -index a6d8263..786d2a5 100644 +index a6d8263..0ef854e 100644 --- a/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake +++ b/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake @@ -17,10 +17,22 @@ find_package(rosidl_runtime_c REQUIRED) @@ -28,7 +28,29 @@ index a6d8263..786d2a5 100644 # Get a list of typesupport implementations from valid rmw implementations. rosidl_generator_py_get_typesupports(_typesupport_impls) -@@ -164,7 +176,7 @@ set(rosidl_generator_py_suffix "__rosidl_generator_py") +@@ -142,6 +154,21 @@ set_property( + ${_generated_extension_files} ${_generated_py_files} ${_generated_c_files} + PROPERTY GENERATED 1) + ++# ament_python_install_package() copies (or symlinks) the package directory ++# into the build directory and runs `setup.py egg_info` on it. Do that only ++# after the Python code has been generated, otherwise the egg-info (e.g. ++# SOURCES.txt) lists only __init__.py. Fixed upstream in rolling by ++# ament/ament_cmake#587 and ros2/rosidl_python#254. ++if(NOT rosidl_generate_interfaces_SKIP_INSTALL) ++ foreach(_copy_target ++ ament_cmake_python_copy_${PROJECT_NAME} ++ ament_cmake_python_symlink_${PROJECT_NAME}) ++ if(TARGET ${_copy_target}) ++ add_dependencies(${_copy_target} ${rosidl_generate_interfaces_TARGET}${_target_suffix}) ++ endif() ++ endforeach() ++endif() ++ + macro(set_properties _build_type) + set_target_properties(${_target_name} PROPERTIES + COMPILE_OPTIONS "${_extension_compile_flags}" +@@ -164,7 +191,7 @@ set(rosidl_generator_py_suffix "__rosidl_generator_py") set(_target_name_lib "${rosidl_generate_interfaces_TARGET}${rosidl_generator_py_suffix}") add_library(${_target_name_lib} SHARED ${_generated_c_files}) @@ -37,7 +59,7 @@ index a6d8263..786d2a5 100644 ${rosidl_generate_interfaces_TARGET}__rosidl_generator_c) add_dependencies( ${_target_name_lib} -@@ -172,45 +184,24 @@ add_dependencies( +@@ -172,45 +199,24 @@ add_dependencies( ${rosidl_generate_interfaces_TARGET}__rosidl_typesupport_c ) @@ -92,7 +114,7 @@ index a6d8263..786d2a5 100644 foreach(_typesupport_impl ${_typesupport_impls}) find_package(${_typesupport_impl} REQUIRED) -@@ -223,7 +214,7 @@ foreach(_typesupport_impl ${_typesupport_impls}) +@@ -223,7 +229,7 @@ foreach(_typesupport_impl ${_typesupport_impls}) set(_pyext_suffix "__pyext") set(_target_name "${PROJECT_NAME}__${_typesupport_impl}${_pyext_suffix}") @@ -101,7 +123,7 @@ index a6d8263..786d2a5 100644 ${_generated_extension_${_typesupport_impl}_files} ) add_dependencies( -@@ -244,39 +235,28 @@ foreach(_typesupport_impl ${_typesupport_impls}) +@@ -244,39 +250,28 @@ foreach(_typesupport_impl ${_typesupport_impls}) set_properties("_RELWITHDEBINFO") endif() target_link_libraries( @@ -148,7 +170,7 @@ index a6d8263..786d2a5 100644 if(NOT rosidl_generate_interfaces_SKIP_INSTALL) install(TARGETS ${_target_name} -@@ -288,7 +268,7 @@ set(PYTHON_EXECUTABLE ${_PYTHON_EXECUTABLE}) +@@ -288,7 +283,7 @@ set(PYTHON_EXECUTABLE ${_PYTHON_EXECUTABLE}) # Depend on rosidl_generator_py generated targets from our dependencies foreach(_pkg_name ${rosidl_generate_interfaces_DEPENDENCY_PACKAGE_NAMES}) @@ -157,7 +179,7 @@ index a6d8263..786d2a5 100644 endforeach() set_lib_properties("") -@@ -305,9 +285,22 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) +@@ -305,9 +300,22 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) LIBRARY DESTINATION lib RUNTIME DESTINATION bin) diff --git a/distros/jazzy/patch/ros2-rosidl-generator-py.patch b/distros/jazzy/patch/ros2-rosidl-generator-py.patch index 193ed4159..bcda3a581 100644 --- a/distros/jazzy/patch/ros2-rosidl-generator-py.patch +++ b/distros/jazzy/patch/ros2-rosidl-generator-py.patch @@ -1,5 +1,5 @@ diff --git a/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake b/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake -index cfc424a..1808ad5 100644 +index cfc424a..3d4c8a4 100644 --- a/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake +++ b/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake @@ -21,6 +21,11 @@ find_package(rosidl_typesupport_interface REQUIRED) @@ -14,7 +14,29 @@ index cfc424a..1808ad5 100644 # Get a list of typesupport implementations from valid rmw implementations. rosidl_generator_py_get_typesupports(_typesupport_impls) -@@ -146,10 +151,13 @@ add_dependencies( +@@ -136,6 +141,21 @@ set_property( + ${_generated_extension_files} ${_generated_py_files} ${_generated_c_files} + PROPERTY GENERATED 1) + ++# ament_python_install_package() copies (or symlinks) the package directory ++# into the build directory and runs `setup.py egg_info` on it. Do that only ++# after the Python code has been generated, otherwise the egg-info (e.g. ++# SOURCES.txt) lists only __init__.py. Fixed upstream in rolling by ++# ament/ament_cmake#587 and ros2/rosidl_python#254. ++if(NOT rosidl_generate_interfaces_SKIP_INSTALL) ++ foreach(_copy_target ++ ament_cmake_python_copy_${PROJECT_NAME} ++ ament_cmake_python_symlink_${PROJECT_NAME}) ++ if(TARGET ${_copy_target}) ++ add_dependencies(${_copy_target} ${rosidl_generate_interfaces_TARGET}${_target_suffix}) ++ endif() ++ endforeach() ++endif() ++ + set(_target_name_lib "${rosidl_generate_interfaces_TARGET}__rosidl_generator_py") + add_library(${_target_name_lib} SHARED ${_generated_c_files}) + target_link_libraries(${_target_name_lib} PRIVATE +@@ -146,10 +166,13 @@ add_dependencies( ${rosidl_generate_interfaces_TARGET}__rosidl_typesupport_c ) @@ -29,7 +51,7 @@ index cfc424a..1808ad5 100644 ) target_include_directories(${_target_name_lib} PRIVATE -@@ -243,9 +251,22 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) +@@ -243,9 +266,22 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) LIBRARY DESTINATION lib RUNTIME DESTINATION bin) From 2a0a030605f9c1ed745d2fc50d7f4616da0d0474 Mon Sep 17 00:00:00 2001 From: Bas Zalmstra <4995967+baszalmstra@users.noreply.github.com> Date: Mon, 26 Oct 2026 12:14:54 +0100 Subject: [PATCH 2/5] rosidl: don't install generated .c/.cpp files and Release/ duplicates Every interface package ships the C/C++ sources rosidl generates for its libraries in include/, next to the headers: - rosidl_generator_c, rosidl_typesupport_introspection_c and rosidl_typesupport_introspection_cpp install their output directory with a bare `PATTERN "*.h"` (or "*.hpp"). Without FILES_MATCHING or EXCLUDE a pattern filters nothing, so the .c/.cpp files are installed too, and generator_c's detail/__type_support.c is overwritten by introspection_c's file of the same name. Exclude the sources instead, as rosidl_typesupport_fastrtps already does. EXCLUDE (rather than FILES_MATCHING) also keeps ament's symlink install working. - rosidl_generator_py (jazzy and later) writes its extension modules into the generated Python package, which is installed as a whole. With the Visual Studio generator used on Windows the modules land in a Release/ subdirectory, so every win-64 package ships them twice. A generator expression in the output directory keeps CMake from adding that subdirectory. Humble sets per-configuration output directories and doesn't have this problem. In ros2-action-tutorials-interfaces (jazzy, win-64) this removes 347 KB of sources from include/ and 74 KB of Release/*.pyd, 21% of the unpacked package; headers, type descriptions and the remaining files are unchanged. Both changes belong upstream in ros2/rosidl and ros2/rosidl_python; the patches can go once a release has them. --- .../patch/ros2-rosidl-generator-c.patch | 13 +++++++++++++ ...2-rosidl-typesupport-introspection-c.patch | 13 +++++++++++++ ...rosidl-typesupport-introspection-cpp.patch | 13 +++++++++++++ .../jazzy/patch/ros2-rosidl-generator-c.patch | 13 +++++++++++++ .../patch/ros2-rosidl-generator-py.patch | 19 +++++++++++++++++-- ...2-rosidl-typesupport-introspection-c.patch | 13 +++++++++++++ ...rosidl-typesupport-introspection-cpp.patch | 13 +++++++++++++ .../patch/ros2-rosidl-generator-c.patch | 13 +++++++++++++ .../patch/ros2-rosidl-generator-py.patch | 19 +++++++++++++++++-- ...2-rosidl-typesupport-introspection-c.patch | 13 +++++++++++++ ...rosidl-typesupport-introspection-cpp.patch | 13 +++++++++++++ .../patch/ros2-rosidl-generator-c.patch | 13 +++++++++++++ .../patch/ros2-rosidl-generator-py.patch | 19 +++++++++++++++++-- ...2-rosidl-typesupport-introspection-c.patch | 13 +++++++++++++ ...rosidl-typesupport-introspection-cpp.patch | 13 +++++++++++++ 15 files changed, 207 insertions(+), 6 deletions(-) create mode 100644 distros/humble/patch/ros2-rosidl-generator-c.patch create mode 100644 distros/humble/patch/ros2-rosidl-typesupport-introspection-c.patch create mode 100644 distros/humble/patch/ros2-rosidl-typesupport-introspection-cpp.patch create mode 100644 distros/jazzy/patch/ros2-rosidl-generator-c.patch create mode 100644 distros/jazzy/patch/ros2-rosidl-typesupport-introspection-c.patch create mode 100644 distros/jazzy/patch/ros2-rosidl-typesupport-introspection-cpp.patch create mode 100644 distros/lyrical/patch/ros2-rosidl-generator-c.patch create mode 100644 distros/lyrical/patch/ros2-rosidl-typesupport-introspection-c.patch create mode 100644 distros/lyrical/patch/ros2-rosidl-typesupport-introspection-cpp.patch create mode 100644 distros/rolling/patch/ros2-rosidl-generator-c.patch create mode 100644 distros/rolling/patch/ros2-rosidl-typesupport-introspection-c.patch create mode 100644 distros/rolling/patch/ros2-rosidl-typesupport-introspection-cpp.patch diff --git a/distros/humble/patch/ros2-rosidl-generator-c.patch b/distros/humble/patch/ros2-rosidl-generator-c.patch new file mode 100644 index 000000000..457ca97ea --- /dev/null +++ b/distros/humble/patch/ros2-rosidl-generator-c.patch @@ -0,0 +1,13 @@ +diff --git a/cmake/rosidl_generator_c_generate_interfaces.cmake b/cmake/rosidl_generator_c_generate_interfaces.cmake +index b024fe0..2500186 100644 +--- a/cmake/rosidl_generator_c_generate_interfaces.cmake ++++ b/cmake/rosidl_generator_c_generate_interfaces.cmake +@@ -149,7 +149,7 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) + install( + DIRECTORY ${_output_path}/ + DESTINATION "include/${PROJECT_NAME}/${PROJECT_NAME}" +- PATTERN "*.h" ++ PATTERN "*.c" EXCLUDE + ) + + # Export old-style CMake variables diff --git a/distros/humble/patch/ros2-rosidl-typesupport-introspection-c.patch b/distros/humble/patch/ros2-rosidl-typesupport-introspection-c.patch new file mode 100644 index 000000000..9ece7f433 --- /dev/null +++ b/distros/humble/patch/ros2-rosidl-typesupport-introspection-c.patch @@ -0,0 +1,13 @@ +diff --git a/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake b/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake +index 26e0974..f131e75 100644 +--- a/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake ++++ b/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake +@@ -141,7 +141,7 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) + install( + DIRECTORY ${_output_path}/ + DESTINATION "include/${PROJECT_NAME}/${PROJECT_NAME}" +- PATTERN "*.h" ++ PATTERN "*.c" EXCLUDE + ) + install( + TARGETS ${rosidl_generate_interfaces_TARGET}${_target_suffix} diff --git a/distros/humble/patch/ros2-rosidl-typesupport-introspection-cpp.patch b/distros/humble/patch/ros2-rosidl-typesupport-introspection-cpp.patch new file mode 100644 index 000000000..1a721d3a3 --- /dev/null +++ b/distros/humble/patch/ros2-rosidl-typesupport-introspection-cpp.patch @@ -0,0 +1,13 @@ +diff --git a/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake b/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake +index 88f6c6a..32fe845 100644 +--- a/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake ++++ b/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake +@@ -140,7 +140,7 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) + install( + DIRECTORY ${_output_path}/ + DESTINATION "include/${PROJECT_NAME}/${PROJECT_NAME}" +- PATTERN "*.hpp" ++ PATTERN "*.cpp" EXCLUDE + ) + + install( diff --git a/distros/jazzy/patch/ros2-rosidl-generator-c.patch b/distros/jazzy/patch/ros2-rosidl-generator-c.patch new file mode 100644 index 000000000..cec02eff5 --- /dev/null +++ b/distros/jazzy/patch/ros2-rosidl-generator-c.patch @@ -0,0 +1,13 @@ +diff --git a/cmake/rosidl_generator_c_generate_interfaces.cmake b/cmake/rosidl_generator_c_generate_interfaces.cmake +index 8bab169..86a998d 100644 +--- a/cmake/rosidl_generator_c_generate_interfaces.cmake ++++ b/cmake/rosidl_generator_c_generate_interfaces.cmake +@@ -185,7 +185,7 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) + install( + DIRECTORY ${_output_path}/ + DESTINATION "include/${PROJECT_NAME}/${PROJECT_NAME}" +- PATTERN "*.h" ++ PATTERN "*.c" EXCLUDE + ) + + # Export old-style CMake variables diff --git a/distros/jazzy/patch/ros2-rosidl-generator-py.patch b/distros/jazzy/patch/ros2-rosidl-generator-py.patch index bcda3a581..13186d941 100644 --- a/distros/jazzy/patch/ros2-rosidl-generator-py.patch +++ b/distros/jazzy/patch/ros2-rosidl-generator-py.patch @@ -1,5 +1,5 @@ diff --git a/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake b/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake -index cfc424a..3d4c8a4 100644 +index cfc424a..11b78dc 100644 --- a/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake +++ b/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake @@ -21,6 +21,11 @@ find_package(rosidl_typesupport_interface REQUIRED) @@ -51,7 +51,22 @@ index cfc424a..3d4c8a4 100644 ) target_include_directories(${_target_name_lib} PRIVATE -@@ -243,9 +266,22 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) +@@ -189,9 +212,12 @@ foreach(_typesupport_impl ${_typesupport_impls}) + # TODO(sloretz) use target_compile_options when python extension passes -Wpedantic + set_target_properties(${_target_name} PROPERTIES COMPILE_OPTIONS "${_extension_compile_flags}") + ++ # Multi-config generators append a per-configuration subdirectory unless the ++ # output directory contains a generator expression. That subdirectory would ++ # end up in the Python package, which is installed as a whole. + set_target_properties(${_target_name} PROPERTIES +- LIBRARY_OUTPUT_DIRECTORY ${_output_path} +- RUNTIME_OUTPUT_DIRECTORY ${_output_path}) ++ LIBRARY_OUTPUT_DIRECTORY "$<1:${_output_path}>" ++ RUNTIME_OUTPUT_DIRECTORY "$<1:${_output_path}>") + + target_link_libraries( + ${_target_name} PRIVATE +@@ -243,9 +269,22 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) LIBRARY DESTINATION lib RUNTIME DESTINATION bin) diff --git a/distros/jazzy/patch/ros2-rosidl-typesupport-introspection-c.patch b/distros/jazzy/patch/ros2-rosidl-typesupport-introspection-c.patch new file mode 100644 index 000000000..b163a4e90 --- /dev/null +++ b/distros/jazzy/patch/ros2-rosidl-typesupport-introspection-c.patch @@ -0,0 +1,13 @@ +diff --git a/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake b/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake +index dfad37a..0155ed6 100644 +--- a/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake ++++ b/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake +@@ -163,7 +163,7 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) + install( + DIRECTORY ${_output_path}/ + DESTINATION "include/${PROJECT_NAME}/${PROJECT_NAME}" +- PATTERN "*.h" ++ PATTERN "*.c" EXCLUDE + ) + install( + TARGETS ${rosidl_generate_interfaces_TARGET}${_target_suffix} diff --git a/distros/jazzy/patch/ros2-rosidl-typesupport-introspection-cpp.patch b/distros/jazzy/patch/ros2-rosidl-typesupport-introspection-cpp.patch new file mode 100644 index 000000000..68e1674f7 --- /dev/null +++ b/distros/jazzy/patch/ros2-rosidl-typesupport-introspection-cpp.patch @@ -0,0 +1,13 @@ +diff --git a/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake b/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake +index daedc90..a44c8ee 100644 +--- a/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake ++++ b/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake +@@ -157,7 +157,7 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) + install( + DIRECTORY ${_output_path}/ + DESTINATION "include/${PROJECT_NAME}/${PROJECT_NAME}" +- PATTERN "*.hpp" ++ PATTERN "*.cpp" EXCLUDE + ) + + install( diff --git a/distros/lyrical/patch/ros2-rosidl-generator-c.patch b/distros/lyrical/patch/ros2-rosidl-generator-c.patch new file mode 100644 index 000000000..cec02eff5 --- /dev/null +++ b/distros/lyrical/patch/ros2-rosidl-generator-c.patch @@ -0,0 +1,13 @@ +diff --git a/cmake/rosidl_generator_c_generate_interfaces.cmake b/cmake/rosidl_generator_c_generate_interfaces.cmake +index 8bab169..86a998d 100644 +--- a/cmake/rosidl_generator_c_generate_interfaces.cmake ++++ b/cmake/rosidl_generator_c_generate_interfaces.cmake +@@ -185,7 +185,7 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) + install( + DIRECTORY ${_output_path}/ + DESTINATION "include/${PROJECT_NAME}/${PROJECT_NAME}" +- PATTERN "*.h" ++ PATTERN "*.c" EXCLUDE + ) + + # Export old-style CMake variables diff --git a/distros/lyrical/patch/ros2-rosidl-generator-py.patch b/distros/lyrical/patch/ros2-rosidl-generator-py.patch index e6fcb610c..e01460d78 100644 --- a/distros/lyrical/patch/ros2-rosidl-generator-py.patch +++ b/distros/lyrical/patch/ros2-rosidl-generator-py.patch @@ -1,5 +1,5 @@ diff --git a/cmake/rosidl_generator_py_generate_interfaces.cmake b/cmake/rosidl_generator_py_generate_interfaces.cmake -index 2fe245b..24eb493 100644 +index 2fe245b..3f1be8c 100644 --- a/cmake/rosidl_generator_py_generate_interfaces.cmake +++ b/cmake/rosidl_generator_py_generate_interfaces.cmake @@ -35,6 +35,11 @@ set(Python3_FIND_UNVERSIONED_NAMES FIRST) @@ -29,7 +29,22 @@ index 2fe245b..24eb493 100644 ) target_include_directories(${_target_name_lib} PRIVATE -@@ -257,9 +265,22 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) +@@ -207,9 +215,12 @@ foreach(_typesupport_impl ${_typesupport_impls}) + # TODO(sloretz) use target_compile_options when python extension passes -Wpedantic + set_target_properties(${_target_name} PROPERTIES COMPILE_OPTIONS "${_extension_compile_flags}") + ++ # Multi-config generators append a per-configuration subdirectory unless the ++ # output directory contains a generator expression. That subdirectory would ++ # end up in the Python package, which is installed as a whole. + set_target_properties(${_target_name} PROPERTIES +- LIBRARY_OUTPUT_DIRECTORY ${_output_path} +- RUNTIME_OUTPUT_DIRECTORY ${_output_path}) ++ LIBRARY_OUTPUT_DIRECTORY "$<1:${_output_path}>" ++ RUNTIME_OUTPUT_DIRECTORY "$<1:${_output_path}>") + + target_link_libraries( + ${_target_name} PRIVATE +@@ -257,9 +268,22 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) LIBRARY DESTINATION lib RUNTIME DESTINATION bin) diff --git a/distros/lyrical/patch/ros2-rosidl-typesupport-introspection-c.patch b/distros/lyrical/patch/ros2-rosidl-typesupport-introspection-c.patch new file mode 100644 index 000000000..7a1da595b --- /dev/null +++ b/distros/lyrical/patch/ros2-rosidl-typesupport-introspection-c.patch @@ -0,0 +1,13 @@ +diff --git a/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake b/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake +index aaf9254..2812af3 100644 +--- a/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake ++++ b/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake +@@ -172,7 +172,7 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) + install( + DIRECTORY ${_output_path}/ + DESTINATION "include/${PROJECT_NAME}/${PROJECT_NAME}" +- PATTERN "*.h" ++ PATTERN "*.c" EXCLUDE + ) + install( + TARGETS ${rosidl_generate_interfaces_TARGET}${_target_suffix} diff --git a/distros/lyrical/patch/ros2-rosidl-typesupport-introspection-cpp.patch b/distros/lyrical/patch/ros2-rosidl-typesupport-introspection-cpp.patch new file mode 100644 index 000000000..d7ee58f7e --- /dev/null +++ b/distros/lyrical/patch/ros2-rosidl-typesupport-introspection-cpp.patch @@ -0,0 +1,13 @@ +diff --git a/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake b/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake +index ed1a3a6..ddb3b7b 100644 +--- a/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake ++++ b/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake +@@ -166,7 +166,7 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) + install( + DIRECTORY ${_output_path}/ + DESTINATION "include/${PROJECT_NAME}/${PROJECT_NAME}" +- PATTERN "*.hpp" ++ PATTERN "*.cpp" EXCLUDE + ) + + install( diff --git a/distros/rolling/patch/ros2-rosidl-generator-c.patch b/distros/rolling/patch/ros2-rosidl-generator-c.patch new file mode 100644 index 000000000..cec02eff5 --- /dev/null +++ b/distros/rolling/patch/ros2-rosidl-generator-c.patch @@ -0,0 +1,13 @@ +diff --git a/cmake/rosidl_generator_c_generate_interfaces.cmake b/cmake/rosidl_generator_c_generate_interfaces.cmake +index 8bab169..86a998d 100644 +--- a/cmake/rosidl_generator_c_generate_interfaces.cmake ++++ b/cmake/rosidl_generator_c_generate_interfaces.cmake +@@ -185,7 +185,7 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) + install( + DIRECTORY ${_output_path}/ + DESTINATION "include/${PROJECT_NAME}/${PROJECT_NAME}" +- PATTERN "*.h" ++ PATTERN "*.c" EXCLUDE + ) + + # Export old-style CMake variables diff --git a/distros/rolling/patch/ros2-rosidl-generator-py.patch b/distros/rolling/patch/ros2-rosidl-generator-py.patch index 0cf05c625..02c26a670 100644 --- a/distros/rolling/patch/ros2-rosidl-generator-py.patch +++ b/distros/rolling/patch/ros2-rosidl-generator-py.patch @@ -1,5 +1,5 @@ diff --git a/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake b/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake -index 2fe245b..24eb493 100644 +index 2fe245b..3f1be8c 100644 --- a/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake +++ b/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake @@ -35,6 +35,11 @@ set(Python3_FIND_UNVERSIONED_NAMES FIRST) @@ -29,7 +29,22 @@ index 2fe245b..24eb493 100644 ) target_include_directories(${_target_name_lib} PRIVATE -@@ -257,9 +265,22 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) +@@ -207,9 +215,12 @@ foreach(_typesupport_impl ${_typesupport_impls}) + # TODO(sloretz) use target_compile_options when python extension passes -Wpedantic + set_target_properties(${_target_name} PROPERTIES COMPILE_OPTIONS "${_extension_compile_flags}") + ++ # Multi-config generators append a per-configuration subdirectory unless the ++ # output directory contains a generator expression. That subdirectory would ++ # end up in the Python package, which is installed as a whole. + set_target_properties(${_target_name} PROPERTIES +- LIBRARY_OUTPUT_DIRECTORY ${_output_path} +- RUNTIME_OUTPUT_DIRECTORY ${_output_path}) ++ LIBRARY_OUTPUT_DIRECTORY "$<1:${_output_path}>" ++ RUNTIME_OUTPUT_DIRECTORY "$<1:${_output_path}>") + + target_link_libraries( + ${_target_name} PRIVATE +@@ -257,9 +268,22 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) LIBRARY DESTINATION lib RUNTIME DESTINATION bin) diff --git a/distros/rolling/patch/ros2-rosidl-typesupport-introspection-c.patch b/distros/rolling/patch/ros2-rosidl-typesupport-introspection-c.patch new file mode 100644 index 000000000..7a1da595b --- /dev/null +++ b/distros/rolling/patch/ros2-rosidl-typesupport-introspection-c.patch @@ -0,0 +1,13 @@ +diff --git a/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake b/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake +index aaf9254..2812af3 100644 +--- a/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake ++++ b/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake +@@ -172,7 +172,7 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) + install( + DIRECTORY ${_output_path}/ + DESTINATION "include/${PROJECT_NAME}/${PROJECT_NAME}" +- PATTERN "*.h" ++ PATTERN "*.c" EXCLUDE + ) + install( + TARGETS ${rosidl_generate_interfaces_TARGET}${_target_suffix} diff --git a/distros/rolling/patch/ros2-rosidl-typesupport-introspection-cpp.patch b/distros/rolling/patch/ros2-rosidl-typesupport-introspection-cpp.patch new file mode 100644 index 000000000..d7ee58f7e --- /dev/null +++ b/distros/rolling/patch/ros2-rosidl-typesupport-introspection-cpp.patch @@ -0,0 +1,13 @@ +diff --git a/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake b/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake +index ed1a3a6..ddb3b7b 100644 +--- a/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake ++++ b/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake +@@ -166,7 +166,7 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) + install( + DIRECTORY ${_output_path}/ + DESTINATION "include/${PROJECT_NAME}/${PROJECT_NAME}" +- PATTERN "*.hpp" ++ PATTERN "*.cpp" EXCLUDE + ) + + install( From 4c52875b83b8e784ef04536bc561cc0eaa9ea932 Mon Sep 17 00:00:00 2001 From: Bas Zalmstra <4995967+baszalmstra@users.noreply.github.com> Date: Mon, 26 Oct 2026 12:15:08 +0100 Subject: [PATCH 3/5] jazzy, lyrical, rolling: rosidl: keep type descriptions up to date on incremental builds rosidl_generator_type_description reads the installed .json type descriptions of the dependency packages and copies them, with their type hashes, into this package's descriptions. Its custom command doesn't depend on those files, though: `_dependency_files` is initialized and never filled. When a message in a dependency changes and the workspace is rebuilt incrementally, the C/C++/Python code is regenerated but the type descriptions are not, so the package keeps the dependency's old description and RIHS01 hash, and the regenerated C code embeds them. Reproduced with two packages built by colcon in an environment with the published jazzy generators: top_msgs/Outer has a dep_msgs/Inner field; adding a field to Inner and running `colcon build` again leaves Outer.json with Inner's old hash (RIHS01_1cf77f... instead of RIHS01_f61610...) and fields, and outer__description.c expects the old hash. With these patches both are updated, and a no-op build regenerates nothing. - rosidl_generator_type_description: depend on the dependencies' //.json files. - rosidl_generator_c, rosidl_generator_cpp: depend on this package's own type description files, which the generated code embeds (until now only ordered by target). Clean builds, like the ones that produce the packages here, give the same output as before; this is for users who build their own interface packages incrementally against these generators. Humble has no type descriptions. The fix belongs upstream in ros2/rosidl, which has the same code in rolling. --- .../jazzy/patch/ros2-rosidl-generator-c.patch | 18 ++++++++++++++++-- .../patch/ros2-rosidl-generator-cpp.patch | 18 ++++++++++++++++++ ...os2-rosidl-generator-type-description.patch | 17 +++++++++++++++++ .../patch/ros2-rosidl-generator-c.patch | 18 ++++++++++++++++-- .../patch/ros2-rosidl-generator-cpp.patch | 18 ++++++++++++++++++ ...os2-rosidl-generator-type-description.patch | 17 +++++++++++++++++ .../patch/ros2-rosidl-generator-c.patch | 18 ++++++++++++++++-- .../patch/ros2-rosidl-generator-cpp.patch | 18 ++++++++++++++++++ ...os2-rosidl-generator-type-description.patch | 17 +++++++++++++++++ 9 files changed, 153 insertions(+), 6 deletions(-) create mode 100644 distros/jazzy/patch/ros2-rosidl-generator-cpp.patch create mode 100644 distros/jazzy/patch/ros2-rosidl-generator-type-description.patch create mode 100644 distros/lyrical/patch/ros2-rosidl-generator-cpp.patch create mode 100644 distros/lyrical/patch/ros2-rosidl-generator-type-description.patch create mode 100644 distros/rolling/patch/ros2-rosidl-generator-cpp.patch create mode 100644 distros/rolling/patch/ros2-rosidl-generator-type-description.patch diff --git a/distros/jazzy/patch/ros2-rosidl-generator-c.patch b/distros/jazzy/patch/ros2-rosidl-generator-c.patch index cec02eff5..111300d52 100644 --- a/distros/jazzy/patch/ros2-rosidl-generator-c.patch +++ b/distros/jazzy/patch/ros2-rosidl-generator-c.patch @@ -1,8 +1,22 @@ diff --git a/cmake/rosidl_generator_c_generate_interfaces.cmake b/cmake/rosidl_generator_c_generate_interfaces.cmake -index 8bab169..86a998d 100644 +index 8bab169..7ac96d2 100644 --- a/cmake/rosidl_generator_c_generate_interfaces.cmake +++ b/cmake/rosidl_generator_c_generate_interfaces.cmake -@@ -185,7 +185,7 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) +@@ -78,6 +78,13 @@ foreach(dep ${target_dependencies}) + endif() + endforeach() + ++# The generated code embeds the type descriptions of this package, which are ++# only generated at build time, so add them after the existence check ++foreach(_tuple ${${rosidl_generate_interfaces_TARGET}__DESCRIPTION_TUPLES}) ++ string(REGEX REPLACE "^[^:]*:(.*)$" "\\1" _type_description_file "${_tuple}") ++ list(APPEND target_dependencies "${_type_description_file}") ++endforeach() ++ + get_target_property(_target_sources ${rosidl_generate_interfaces_TARGET} SOURCES) + set(generator_arguments_file "${CMAKE_CURRENT_BINARY_DIR}/rosidl_generator_c__arguments.json") + rosidl_write_generator_arguments( +@@ -185,7 +192,7 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) install( DIRECTORY ${_output_path}/ DESTINATION "include/${PROJECT_NAME}/${PROJECT_NAME}" diff --git a/distros/jazzy/patch/ros2-rosidl-generator-cpp.patch b/distros/jazzy/patch/ros2-rosidl-generator-cpp.patch new file mode 100644 index 000000000..f21068dc9 --- /dev/null +++ b/distros/jazzy/patch/ros2-rosidl-generator-cpp.patch @@ -0,0 +1,18 @@ +diff --git a/cmake/rosidl_generator_cpp_generate_interfaces.cmake b/cmake/rosidl_generator_cpp_generate_interfaces.cmake +index 864ed78..570a044 100644 +--- a/cmake/rosidl_generator_cpp_generate_interfaces.cmake ++++ b/cmake/rosidl_generator_cpp_generate_interfaces.cmake +@@ -82,6 +82,13 @@ foreach(dep ${target_dependencies}) + endif() + endforeach() + ++# The generated code embeds the type hashes of this package, which are only ++# generated at build time, so add them after the existence check ++foreach(_tuple ${${rosidl_generate_interfaces_TARGET}__DESCRIPTION_TUPLES}) ++ string(REGEX REPLACE "^[^:]*:(.*)$" "\\1" _type_description_file "${_tuple}") ++ list(APPEND target_dependencies "${_type_description_file}") ++endforeach() ++ + set(generator_arguments_file "${CMAKE_CURRENT_BINARY_DIR}/rosidl_generator_cpp__arguments.json") + rosidl_write_generator_arguments( + "${generator_arguments_file}" diff --git a/distros/jazzy/patch/ros2-rosidl-generator-type-description.patch b/distros/jazzy/patch/ros2-rosidl-generator-type-description.patch new file mode 100644 index 000000000..2ebe6f2e5 --- /dev/null +++ b/distros/jazzy/patch/ros2-rosidl-generator-type-description.patch @@ -0,0 +1,17 @@ +diff --git a/cmake/rosidl_generator_type_description_generate_interfaces.cmake b/cmake/rosidl_generator_type_description_generate_interfaces.cmake +index ed29cda..5375a3a 100644 +--- a/cmake/rosidl_generator_type_description_generate_interfaces.cmake ++++ b/cmake/rosidl_generator_type_description_generate_interfaces.cmake +@@ -52,6 +52,12 @@ foreach(_pkg_name ${rosidl_generate_interfaces_DEPENDENCY_PACKAGE_NAMES}) + set(_include_path "${${_pkg_name}_DIR}/..") + normalize_path(_include_path "${_include_path}") + list(APPEND _dependency_paths "${_pkg_name}:${_include_path}") ++ # The generator reads the type descriptions of referenced types from the ++ # .json files installed next to the dependency's .idl files ++ foreach(_idl_file ${${_pkg_name}_IDL_FILES}) ++ string(REGEX REPLACE "\\.idl$" ".json" _json_file "${_idl_file}") ++ list(APPEND _dependency_files "${_include_path}/${_json_file}") ++ endforeach() + endforeach() + + # Export __DESCRIPTION_TUPLES variable for use by dependent generators diff --git a/distros/lyrical/patch/ros2-rosidl-generator-c.patch b/distros/lyrical/patch/ros2-rosidl-generator-c.patch index cec02eff5..111300d52 100644 --- a/distros/lyrical/patch/ros2-rosidl-generator-c.patch +++ b/distros/lyrical/patch/ros2-rosidl-generator-c.patch @@ -1,8 +1,22 @@ diff --git a/cmake/rosidl_generator_c_generate_interfaces.cmake b/cmake/rosidl_generator_c_generate_interfaces.cmake -index 8bab169..86a998d 100644 +index 8bab169..7ac96d2 100644 --- a/cmake/rosidl_generator_c_generate_interfaces.cmake +++ b/cmake/rosidl_generator_c_generate_interfaces.cmake -@@ -185,7 +185,7 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) +@@ -78,6 +78,13 @@ foreach(dep ${target_dependencies}) + endif() + endforeach() + ++# The generated code embeds the type descriptions of this package, which are ++# only generated at build time, so add them after the existence check ++foreach(_tuple ${${rosidl_generate_interfaces_TARGET}__DESCRIPTION_TUPLES}) ++ string(REGEX REPLACE "^[^:]*:(.*)$" "\\1" _type_description_file "${_tuple}") ++ list(APPEND target_dependencies "${_type_description_file}") ++endforeach() ++ + get_target_property(_target_sources ${rosidl_generate_interfaces_TARGET} SOURCES) + set(generator_arguments_file "${CMAKE_CURRENT_BINARY_DIR}/rosidl_generator_c__arguments.json") + rosidl_write_generator_arguments( +@@ -185,7 +192,7 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) install( DIRECTORY ${_output_path}/ DESTINATION "include/${PROJECT_NAME}/${PROJECT_NAME}" diff --git a/distros/lyrical/patch/ros2-rosidl-generator-cpp.patch b/distros/lyrical/patch/ros2-rosidl-generator-cpp.patch new file mode 100644 index 000000000..f21068dc9 --- /dev/null +++ b/distros/lyrical/patch/ros2-rosidl-generator-cpp.patch @@ -0,0 +1,18 @@ +diff --git a/cmake/rosidl_generator_cpp_generate_interfaces.cmake b/cmake/rosidl_generator_cpp_generate_interfaces.cmake +index 864ed78..570a044 100644 +--- a/cmake/rosidl_generator_cpp_generate_interfaces.cmake ++++ b/cmake/rosidl_generator_cpp_generate_interfaces.cmake +@@ -82,6 +82,13 @@ foreach(dep ${target_dependencies}) + endif() + endforeach() + ++# The generated code embeds the type hashes of this package, which are only ++# generated at build time, so add them after the existence check ++foreach(_tuple ${${rosidl_generate_interfaces_TARGET}__DESCRIPTION_TUPLES}) ++ string(REGEX REPLACE "^[^:]*:(.*)$" "\\1" _type_description_file "${_tuple}") ++ list(APPEND target_dependencies "${_type_description_file}") ++endforeach() ++ + set(generator_arguments_file "${CMAKE_CURRENT_BINARY_DIR}/rosidl_generator_cpp__arguments.json") + rosidl_write_generator_arguments( + "${generator_arguments_file}" diff --git a/distros/lyrical/patch/ros2-rosidl-generator-type-description.patch b/distros/lyrical/patch/ros2-rosidl-generator-type-description.patch new file mode 100644 index 000000000..0fd59ad46 --- /dev/null +++ b/distros/lyrical/patch/ros2-rosidl-generator-type-description.patch @@ -0,0 +1,17 @@ +diff --git a/cmake/rosidl_generator_type_description_generate_interfaces.cmake b/cmake/rosidl_generator_type_description_generate_interfaces.cmake +index 0e420f1..67d6b91 100644 +--- a/cmake/rosidl_generator_type_description_generate_interfaces.cmake ++++ b/cmake/rosidl_generator_type_description_generate_interfaces.cmake +@@ -52,6 +52,12 @@ foreach(_pkg_name ${rosidl_generate_interfaces_DEPENDENCY_PACKAGE_NAMES}) + set(_include_path "${${_pkg_name}_DIR}/..") + normalize_path(_include_path "${_include_path}") + list(APPEND _dependency_paths "${_pkg_name}:${_include_path}") ++ # The generator reads the type descriptions of referenced types from the ++ # .json files installed next to the dependency's .idl files ++ foreach(_idl_file ${${_pkg_name}_IDL_FILES}) ++ string(REGEX REPLACE "\\.idl$" ".json" _json_file "${_idl_file}") ++ list(APPEND _dependency_files "${_include_path}/${_json_file}") ++ endforeach() + endforeach() + + # Export __DESCRIPTION_TUPLES variable for use by dependent generators diff --git a/distros/rolling/patch/ros2-rosidl-generator-c.patch b/distros/rolling/patch/ros2-rosidl-generator-c.patch index cec02eff5..111300d52 100644 --- a/distros/rolling/patch/ros2-rosidl-generator-c.patch +++ b/distros/rolling/patch/ros2-rosidl-generator-c.patch @@ -1,8 +1,22 @@ diff --git a/cmake/rosidl_generator_c_generate_interfaces.cmake b/cmake/rosidl_generator_c_generate_interfaces.cmake -index 8bab169..86a998d 100644 +index 8bab169..7ac96d2 100644 --- a/cmake/rosidl_generator_c_generate_interfaces.cmake +++ b/cmake/rosidl_generator_c_generate_interfaces.cmake -@@ -185,7 +185,7 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) +@@ -78,6 +78,13 @@ foreach(dep ${target_dependencies}) + endif() + endforeach() + ++# The generated code embeds the type descriptions of this package, which are ++# only generated at build time, so add them after the existence check ++foreach(_tuple ${${rosidl_generate_interfaces_TARGET}__DESCRIPTION_TUPLES}) ++ string(REGEX REPLACE "^[^:]*:(.*)$" "\\1" _type_description_file "${_tuple}") ++ list(APPEND target_dependencies "${_type_description_file}") ++endforeach() ++ + get_target_property(_target_sources ${rosidl_generate_interfaces_TARGET} SOURCES) + set(generator_arguments_file "${CMAKE_CURRENT_BINARY_DIR}/rosidl_generator_c__arguments.json") + rosidl_write_generator_arguments( +@@ -185,7 +192,7 @@ if(NOT rosidl_generate_interfaces_SKIP_INSTALL) install( DIRECTORY ${_output_path}/ DESTINATION "include/${PROJECT_NAME}/${PROJECT_NAME}" diff --git a/distros/rolling/patch/ros2-rosidl-generator-cpp.patch b/distros/rolling/patch/ros2-rosidl-generator-cpp.patch new file mode 100644 index 000000000..f21068dc9 --- /dev/null +++ b/distros/rolling/patch/ros2-rosidl-generator-cpp.patch @@ -0,0 +1,18 @@ +diff --git a/cmake/rosidl_generator_cpp_generate_interfaces.cmake b/cmake/rosidl_generator_cpp_generate_interfaces.cmake +index 864ed78..570a044 100644 +--- a/cmake/rosidl_generator_cpp_generate_interfaces.cmake ++++ b/cmake/rosidl_generator_cpp_generate_interfaces.cmake +@@ -82,6 +82,13 @@ foreach(dep ${target_dependencies}) + endif() + endforeach() + ++# The generated code embeds the type hashes of this package, which are only ++# generated at build time, so add them after the existence check ++foreach(_tuple ${${rosidl_generate_interfaces_TARGET}__DESCRIPTION_TUPLES}) ++ string(REGEX REPLACE "^[^:]*:(.*)$" "\\1" _type_description_file "${_tuple}") ++ list(APPEND target_dependencies "${_type_description_file}") ++endforeach() ++ + set(generator_arguments_file "${CMAKE_CURRENT_BINARY_DIR}/rosidl_generator_cpp__arguments.json") + rosidl_write_generator_arguments( + "${generator_arguments_file}" diff --git a/distros/rolling/patch/ros2-rosidl-generator-type-description.patch b/distros/rolling/patch/ros2-rosidl-generator-type-description.patch new file mode 100644 index 000000000..0fd59ad46 --- /dev/null +++ b/distros/rolling/patch/ros2-rosidl-generator-type-description.patch @@ -0,0 +1,17 @@ +diff --git a/cmake/rosidl_generator_type_description_generate_interfaces.cmake b/cmake/rosidl_generator_type_description_generate_interfaces.cmake +index 0e420f1..67d6b91 100644 +--- a/cmake/rosidl_generator_type_description_generate_interfaces.cmake ++++ b/cmake/rosidl_generator_type_description_generate_interfaces.cmake +@@ -52,6 +52,12 @@ foreach(_pkg_name ${rosidl_generate_interfaces_DEPENDENCY_PACKAGE_NAMES}) + set(_include_path "${${_pkg_name}_DIR}/..") + normalize_path(_include_path "${_include_path}") + list(APPEND _dependency_paths "${_pkg_name}:${_include_path}") ++ # The generator reads the type descriptions of referenced types from the ++ # .json files installed next to the dependency's .idl files ++ foreach(_idl_file ${${_pkg_name}_IDL_FILES}) ++ string(REGEX REPLACE "\\.idl$" ".json" _json_file "${_idl_file}") ++ list(APPEND _dependency_files "${_include_path}/${_json_file}") ++ endforeach() + endforeach() + + # Export __DESCRIPTION_TUPLES variable for use by dependent generators From f71bb5c33d490358aa6176d4c86572e6a0d1b7bb Mon Sep 17 00:00:00 2001 From: Bas Zalmstra <4995967+baszalmstra@users.noreply.github.com> Date: Mon, 26 Oct 2026 12:15:13 +0100 Subject: [PATCH 4/5] Rebuild the patched rosidl generators New per-package build numbers (`rs rebuild`, above every published build) for the generator packages the previous commits patch, so that they are built and published again: - humble (24): rosidl_generator_c, rosidl_generator_py, rosidl_typesupport_introspection_c, rosidl_typesupport_introspection_cpp - jazzy (29), lyrical (32), rolling (34): the same plus rosidl_generator_cpp and rosidl_generator_type_description Interface packages that are already published keep their contents until they are rebuilt themselves; that is left to a separate decision. --- distros/humble/pkg_additional_info.yaml | 8 ++++++++ distros/jazzy/pkg_additional_info.yaml | 12 ++++++++++++ distros/lyrical/pkg_additional_info.yaml | 12 ++++++++++++ distros/rolling/pkg_additional_info.yaml | 12 ++++++++++++ 4 files changed, 44 insertions(+) diff --git a/distros/humble/pkg_additional_info.yaml b/distros/humble/pkg_additional_info.yaml index 4fa48a111..fcae1feba 100644 --- a/distros/humble/pkg_additional_info.yaml +++ b/distros/humble/pkg_additional_info.yaml @@ -109,3 +109,11 @@ ament_cmake_gmock: # as ament_cmake_gtest build_number: 23 ament_cmake_gtest: # uses conda-forge's gtest instead of gtest_vendor's sources build_number: 23 +rosidl_generator_c: + build_number: 24 +rosidl_generator_py: + build_number: 24 +rosidl_typesupport_introspection_c: + build_number: 24 +rosidl_typesupport_introspection_cpp: + build_number: 24 diff --git a/distros/jazzy/pkg_additional_info.yaml b/distros/jazzy/pkg_additional_info.yaml index abcf91cdb..7a44d5e88 100644 --- a/distros/jazzy/pkg_additional_info.yaml +++ b/distros/jazzy/pkg_additional_info.yaml @@ -135,6 +135,18 @@ ament_cmake_gtest: # uses conda-forge's gtest instead of gtest_vendor's sources build_number: 28 gz_ogre_next_vendor: build_number: 28 +rosidl_generator_c: + build_number: 29 +rosidl_generator_cpp: + build_number: 29 +rosidl_generator_py: + build_number: 29 +rosidl_generator_type_description: + build_number: 29 +rosidl_typesupport_introspection_c: + build_number: 29 +rosidl_typesupport_introspection_cpp: + build_number: 29 rviz_ogre_vendor: additional_cmake_args: "-DRVIZ_OGRE_VENDOR_MANGLE_NAME_OF_LIBRARIES_USED_BY_RVIZ=ON" build_number: 28 # built without the EXR codec (ros2-rviz-ogre-vendor.patch) diff --git a/distros/lyrical/pkg_additional_info.yaml b/distros/lyrical/pkg_additional_info.yaml index 4b86a8936..d8af4e01d 100644 --- a/distros/lyrical/pkg_additional_info.yaml +++ b/distros/lyrical/pkg_additional_info.yaml @@ -113,6 +113,18 @@ urdfdom_headers: zenoh_cpp_vendor: additional_cmake_args: "-DAMENT_VENDOR_POLICY=NEVER_VENDOR_IGNORE_SATISFIED_CHECK -DUSE_SYSTEM_ZENOH=ON" # Remove build_number fields below on new full rebuild +rosidl_generator_c: + build_number: 32 +rosidl_generator_cpp: + build_number: 32 +rosidl_generator_py: + build_number: 32 +rosidl_generator_type_description: + build_number: 32 +rosidl_typesupport_introspection_c: + build_number: 32 +rosidl_typesupport_introspection_cpp: + build_number: 32 rviz_ogre_vendor: additional_cmake_args: "-DRVIZ_OGRE_VENDOR_MANGLE_NAME_OF_LIBRARIES_USED_BY_RVIZ=ON" build_number: 31 # built without the EXR codec (ros2-rviz-ogre-vendor.patch) diff --git a/distros/rolling/pkg_additional_info.yaml b/distros/rolling/pkg_additional_info.yaml index 9f59fbccc..220ed04e6 100644 --- a/distros/rolling/pkg_additional_info.yaml +++ b/distros/rolling/pkg_additional_info.yaml @@ -71,6 +71,18 @@ urdfdom_headers: override_version: '3.0.0' zenoh_cpp_vendor: additional_cmake_args: "-DAMENT_VENDOR_POLICY=NEVER_VENDOR_IGNORE_SATISFIED_CHECK -DUSE_SYSTEM_ZENOH=ON" +rosidl_generator_c: + build_number: 34 +rosidl_generator_cpp: + build_number: 34 +rosidl_generator_py: + build_number: 34 +rosidl_generator_type_description: + build_number: 34 +rosidl_typesupport_introspection_c: + build_number: 34 +rosidl_typesupport_introspection_cpp: + build_number: 34 rviz_ogre_vendor: additional_cmake_args: "-DRVIZ_OGRE_VENDOR_MANGLE_NAME_OF_LIBRARIES_USED_BY_RVIZ=ON" build_number: 33 # built without the EXR codec (ros2-rviz-ogre-vendor.patch) From 0cb896cee7686c851e5143e792d52549c53ba4bc Mon Sep 17 00:00:00 2001 From: Bas Zalmstra <4995967+baszalmstra@users.noreply.github.com> Date: Tue, 27 Oct 2026 18:00:31 +0100 Subject: [PATCH 5/5] rosidl patches: link the upstream pull requests --- distros/humble/patch/ros2-rosidl-generator-c.patch | 2 ++ distros/humble/patch/ros2-rosidl-generator-py.patch | 2 ++ .../humble/patch/ros2-rosidl-typesupport-introspection-c.patch | 2 ++ .../patch/ros2-rosidl-typesupport-introspection-cpp.patch | 2 ++ distros/jazzy/patch/ros2-rosidl-generator-c.patch | 3 +++ distros/jazzy/patch/ros2-rosidl-generator-cpp.patch | 2 ++ distros/jazzy/patch/ros2-rosidl-generator-py.patch | 3 +++ .../jazzy/patch/ros2-rosidl-generator-type-description.patch | 2 ++ .../jazzy/patch/ros2-rosidl-typesupport-introspection-c.patch | 2 ++ .../patch/ros2-rosidl-typesupport-introspection-cpp.patch | 2 ++ distros/lyrical/patch/ros2-rosidl-generator-c.patch | 3 +++ distros/lyrical/patch/ros2-rosidl-generator-cpp.patch | 2 ++ distros/lyrical/patch/ros2-rosidl-generator-py.patch | 2 ++ .../lyrical/patch/ros2-rosidl-generator-type-description.patch | 2 ++ .../patch/ros2-rosidl-typesupport-introspection-c.patch | 2 ++ .../patch/ros2-rosidl-typesupport-introspection-cpp.patch | 2 ++ distros/rolling/patch/ros2-rosidl-generator-c.patch | 3 +++ distros/rolling/patch/ros2-rosidl-generator-cpp.patch | 2 ++ distros/rolling/patch/ros2-rosidl-generator-py.patch | 2 ++ .../rolling/patch/ros2-rosidl-generator-type-description.patch | 2 ++ .../patch/ros2-rosidl-typesupport-introspection-c.patch | 2 ++ .../patch/ros2-rosidl-typesupport-introspection-cpp.patch | 2 ++ 22 files changed, 48 insertions(+) diff --git a/distros/humble/patch/ros2-rosidl-generator-c.patch b/distros/humble/patch/ros2-rosidl-generator-c.patch index 457ca97ea..bd073eeb4 100644 --- a/distros/humble/patch/ros2-rosidl-generator-c.patch +++ b/distros/humble/patch/ros2-rosidl-generator-c.patch @@ -1,3 +1,5 @@ +Generated .c/.cpp files installed into include/: https://github.com/ros2/rosidl/pull/1019 + diff --git a/cmake/rosidl_generator_c_generate_interfaces.cmake b/cmake/rosidl_generator_c_generate_interfaces.cmake index b024fe0..2500186 100644 --- a/cmake/rosidl_generator_c_generate_interfaces.cmake diff --git a/distros/humble/patch/ros2-rosidl-generator-py.patch b/distros/humble/patch/ros2-rosidl-generator-py.patch index cde241b5a..956da1b21 100644 --- a/distros/humble/patch/ros2-rosidl-generator-py.patch +++ b/distros/humble/patch/ros2-rosidl-generator-py.patch @@ -1,3 +1,5 @@ +egg-info written before the code is generated, backport of https://github.com/ament/ament_cmake/pull/587 and https://github.com/ros2/rosidl_python/pull/254 + diff --git a/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake b/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake index a6d8263..0ef854e 100644 --- a/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake diff --git a/distros/humble/patch/ros2-rosidl-typesupport-introspection-c.patch b/distros/humble/patch/ros2-rosidl-typesupport-introspection-c.patch index 9ece7f433..4099c6a3b 100644 --- a/distros/humble/patch/ros2-rosidl-typesupport-introspection-c.patch +++ b/distros/humble/patch/ros2-rosidl-typesupport-introspection-c.patch @@ -1,3 +1,5 @@ +Generated .c/.cpp files installed into include/: https://github.com/ros2/rosidl/pull/1019 + diff --git a/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake b/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake index 26e0974..f131e75 100644 --- a/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake diff --git a/distros/humble/patch/ros2-rosidl-typesupport-introspection-cpp.patch b/distros/humble/patch/ros2-rosidl-typesupport-introspection-cpp.patch index 1a721d3a3..e12acbc8c 100644 --- a/distros/humble/patch/ros2-rosidl-typesupport-introspection-cpp.patch +++ b/distros/humble/patch/ros2-rosidl-typesupport-introspection-cpp.patch @@ -1,3 +1,5 @@ +Generated .c/.cpp files installed into include/: https://github.com/ros2/rosidl/pull/1019 + diff --git a/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake b/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake index 88f6c6a..32fe845 100644 --- a/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake diff --git a/distros/jazzy/patch/ros2-rosidl-generator-c.patch b/distros/jazzy/patch/ros2-rosidl-generator-c.patch index 111300d52..610a0b62b 100644 --- a/distros/jazzy/patch/ros2-rosidl-generator-c.patch +++ b/distros/jazzy/patch/ros2-rosidl-generator-c.patch @@ -1,3 +1,6 @@ +Type descriptions out of date on incremental builds: https://github.com/ros2/rosidl/pull/1018 +Generated .c/.cpp files installed into include/: https://github.com/ros2/rosidl/pull/1019 + diff --git a/cmake/rosidl_generator_c_generate_interfaces.cmake b/cmake/rosidl_generator_c_generate_interfaces.cmake index 8bab169..7ac96d2 100644 --- a/cmake/rosidl_generator_c_generate_interfaces.cmake diff --git a/distros/jazzy/patch/ros2-rosidl-generator-cpp.patch b/distros/jazzy/patch/ros2-rosidl-generator-cpp.patch index f21068dc9..0e80c0b92 100644 --- a/distros/jazzy/patch/ros2-rosidl-generator-cpp.patch +++ b/distros/jazzy/patch/ros2-rosidl-generator-cpp.patch @@ -1,3 +1,5 @@ +Type descriptions out of date on incremental builds: https://github.com/ros2/rosidl/pull/1018 + diff --git a/cmake/rosidl_generator_cpp_generate_interfaces.cmake b/cmake/rosidl_generator_cpp_generate_interfaces.cmake index 864ed78..570a044 100644 --- a/cmake/rosidl_generator_cpp_generate_interfaces.cmake diff --git a/distros/jazzy/patch/ros2-rosidl-generator-py.patch b/distros/jazzy/patch/ros2-rosidl-generator-py.patch index 13186d941..5fa36227a 100644 --- a/distros/jazzy/patch/ros2-rosidl-generator-py.patch +++ b/distros/jazzy/patch/ros2-rosidl-generator-py.patch @@ -1,3 +1,6 @@ +egg-info written before the code is generated, backport of https://github.com/ament/ament_cmake/pull/587 and https://github.com/ros2/rosidl_python/pull/254 +Duplicate extension modules in Release/ on Windows: https://github.com/ros2/rosidl_python/pull/272 + diff --git a/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake b/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake index cfc424a..11b78dc 100644 --- a/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake diff --git a/distros/jazzy/patch/ros2-rosidl-generator-type-description.patch b/distros/jazzy/patch/ros2-rosidl-generator-type-description.patch index 2ebe6f2e5..85bdfe78c 100644 --- a/distros/jazzy/patch/ros2-rosidl-generator-type-description.patch +++ b/distros/jazzy/patch/ros2-rosidl-generator-type-description.patch @@ -1,3 +1,5 @@ +Type descriptions out of date on incremental builds: https://github.com/ros2/rosidl/pull/1018 + diff --git a/cmake/rosidl_generator_type_description_generate_interfaces.cmake b/cmake/rosidl_generator_type_description_generate_interfaces.cmake index ed29cda..5375a3a 100644 --- a/cmake/rosidl_generator_type_description_generate_interfaces.cmake diff --git a/distros/jazzy/patch/ros2-rosidl-typesupport-introspection-c.patch b/distros/jazzy/patch/ros2-rosidl-typesupport-introspection-c.patch index b163a4e90..725ff6abb 100644 --- a/distros/jazzy/patch/ros2-rosidl-typesupport-introspection-c.patch +++ b/distros/jazzy/patch/ros2-rosidl-typesupport-introspection-c.patch @@ -1,3 +1,5 @@ +Generated .c/.cpp files installed into include/: https://github.com/ros2/rosidl/pull/1019 + diff --git a/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake b/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake index dfad37a..0155ed6 100644 --- a/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake diff --git a/distros/jazzy/patch/ros2-rosidl-typesupport-introspection-cpp.patch b/distros/jazzy/patch/ros2-rosidl-typesupport-introspection-cpp.patch index 68e1674f7..55e7a7198 100644 --- a/distros/jazzy/patch/ros2-rosidl-typesupport-introspection-cpp.patch +++ b/distros/jazzy/patch/ros2-rosidl-typesupport-introspection-cpp.patch @@ -1,3 +1,5 @@ +Generated .c/.cpp files installed into include/: https://github.com/ros2/rosidl/pull/1019 + diff --git a/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake b/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake index daedc90..a44c8ee 100644 --- a/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake diff --git a/distros/lyrical/patch/ros2-rosidl-generator-c.patch b/distros/lyrical/patch/ros2-rosidl-generator-c.patch index 111300d52..610a0b62b 100644 --- a/distros/lyrical/patch/ros2-rosidl-generator-c.patch +++ b/distros/lyrical/patch/ros2-rosidl-generator-c.patch @@ -1,3 +1,6 @@ +Type descriptions out of date on incremental builds: https://github.com/ros2/rosidl/pull/1018 +Generated .c/.cpp files installed into include/: https://github.com/ros2/rosidl/pull/1019 + diff --git a/cmake/rosidl_generator_c_generate_interfaces.cmake b/cmake/rosidl_generator_c_generate_interfaces.cmake index 8bab169..7ac96d2 100644 --- a/cmake/rosidl_generator_c_generate_interfaces.cmake diff --git a/distros/lyrical/patch/ros2-rosidl-generator-cpp.patch b/distros/lyrical/patch/ros2-rosidl-generator-cpp.patch index f21068dc9..0e80c0b92 100644 --- a/distros/lyrical/patch/ros2-rosidl-generator-cpp.patch +++ b/distros/lyrical/patch/ros2-rosidl-generator-cpp.patch @@ -1,3 +1,5 @@ +Type descriptions out of date on incremental builds: https://github.com/ros2/rosidl/pull/1018 + diff --git a/cmake/rosidl_generator_cpp_generate_interfaces.cmake b/cmake/rosidl_generator_cpp_generate_interfaces.cmake index 864ed78..570a044 100644 --- a/cmake/rosidl_generator_cpp_generate_interfaces.cmake diff --git a/distros/lyrical/patch/ros2-rosidl-generator-py.patch b/distros/lyrical/patch/ros2-rosidl-generator-py.patch index e01460d78..af5573fd3 100644 --- a/distros/lyrical/patch/ros2-rosidl-generator-py.patch +++ b/distros/lyrical/patch/ros2-rosidl-generator-py.patch @@ -1,3 +1,5 @@ +Duplicate extension modules in Release/ on Windows: https://github.com/ros2/rosidl_python/pull/272 + diff --git a/cmake/rosidl_generator_py_generate_interfaces.cmake b/cmake/rosidl_generator_py_generate_interfaces.cmake index 2fe245b..3f1be8c 100644 --- a/cmake/rosidl_generator_py_generate_interfaces.cmake diff --git a/distros/lyrical/patch/ros2-rosidl-generator-type-description.patch b/distros/lyrical/patch/ros2-rosidl-generator-type-description.patch index 0fd59ad46..88f8da69b 100644 --- a/distros/lyrical/patch/ros2-rosidl-generator-type-description.patch +++ b/distros/lyrical/patch/ros2-rosidl-generator-type-description.patch @@ -1,3 +1,5 @@ +Type descriptions out of date on incremental builds: https://github.com/ros2/rosidl/pull/1018 + diff --git a/cmake/rosidl_generator_type_description_generate_interfaces.cmake b/cmake/rosidl_generator_type_description_generate_interfaces.cmake index 0e420f1..67d6b91 100644 --- a/cmake/rosidl_generator_type_description_generate_interfaces.cmake diff --git a/distros/lyrical/patch/ros2-rosidl-typesupport-introspection-c.patch b/distros/lyrical/patch/ros2-rosidl-typesupport-introspection-c.patch index 7a1da595b..f26fd3684 100644 --- a/distros/lyrical/patch/ros2-rosidl-typesupport-introspection-c.patch +++ b/distros/lyrical/patch/ros2-rosidl-typesupport-introspection-c.patch @@ -1,3 +1,5 @@ +Generated .c/.cpp files installed into include/: https://github.com/ros2/rosidl/pull/1019 + diff --git a/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake b/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake index aaf9254..2812af3 100644 --- a/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake diff --git a/distros/lyrical/patch/ros2-rosidl-typesupport-introspection-cpp.patch b/distros/lyrical/patch/ros2-rosidl-typesupport-introspection-cpp.patch index d7ee58f7e..c4830f82e 100644 --- a/distros/lyrical/patch/ros2-rosidl-typesupport-introspection-cpp.patch +++ b/distros/lyrical/patch/ros2-rosidl-typesupport-introspection-cpp.patch @@ -1,3 +1,5 @@ +Generated .c/.cpp files installed into include/: https://github.com/ros2/rosidl/pull/1019 + diff --git a/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake b/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake index ed1a3a6..ddb3b7b 100644 --- a/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake diff --git a/distros/rolling/patch/ros2-rosidl-generator-c.patch b/distros/rolling/patch/ros2-rosidl-generator-c.patch index 111300d52..610a0b62b 100644 --- a/distros/rolling/patch/ros2-rosidl-generator-c.patch +++ b/distros/rolling/patch/ros2-rosidl-generator-c.patch @@ -1,3 +1,6 @@ +Type descriptions out of date on incremental builds: https://github.com/ros2/rosidl/pull/1018 +Generated .c/.cpp files installed into include/: https://github.com/ros2/rosidl/pull/1019 + diff --git a/cmake/rosidl_generator_c_generate_interfaces.cmake b/cmake/rosidl_generator_c_generate_interfaces.cmake index 8bab169..7ac96d2 100644 --- a/cmake/rosidl_generator_c_generate_interfaces.cmake diff --git a/distros/rolling/patch/ros2-rosidl-generator-cpp.patch b/distros/rolling/patch/ros2-rosidl-generator-cpp.patch index f21068dc9..0e80c0b92 100644 --- a/distros/rolling/patch/ros2-rosidl-generator-cpp.patch +++ b/distros/rolling/patch/ros2-rosidl-generator-cpp.patch @@ -1,3 +1,5 @@ +Type descriptions out of date on incremental builds: https://github.com/ros2/rosidl/pull/1018 + diff --git a/cmake/rosidl_generator_cpp_generate_interfaces.cmake b/cmake/rosidl_generator_cpp_generate_interfaces.cmake index 864ed78..570a044 100644 --- a/cmake/rosidl_generator_cpp_generate_interfaces.cmake diff --git a/distros/rolling/patch/ros2-rosidl-generator-py.patch b/distros/rolling/patch/ros2-rosidl-generator-py.patch index 02c26a670..206641ec3 100644 --- a/distros/rolling/patch/ros2-rosidl-generator-py.patch +++ b/distros/rolling/patch/ros2-rosidl-generator-py.patch @@ -1,3 +1,5 @@ +Duplicate extension modules in Release/ on Windows: https://github.com/ros2/rosidl_python/pull/272 + diff --git a/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake b/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake index 2fe245b..3f1be8c 100644 --- a/rosidl_generator_py/cmake/rosidl_generator_py_generate_interfaces.cmake diff --git a/distros/rolling/patch/ros2-rosidl-generator-type-description.patch b/distros/rolling/patch/ros2-rosidl-generator-type-description.patch index 0fd59ad46..88f8da69b 100644 --- a/distros/rolling/patch/ros2-rosidl-generator-type-description.patch +++ b/distros/rolling/patch/ros2-rosidl-generator-type-description.patch @@ -1,3 +1,5 @@ +Type descriptions out of date on incremental builds: https://github.com/ros2/rosidl/pull/1018 + diff --git a/cmake/rosidl_generator_type_description_generate_interfaces.cmake b/cmake/rosidl_generator_type_description_generate_interfaces.cmake index 0e420f1..67d6b91 100644 --- a/cmake/rosidl_generator_type_description_generate_interfaces.cmake diff --git a/distros/rolling/patch/ros2-rosidl-typesupport-introspection-c.patch b/distros/rolling/patch/ros2-rosidl-typesupport-introspection-c.patch index 7a1da595b..f26fd3684 100644 --- a/distros/rolling/patch/ros2-rosidl-typesupport-introspection-c.patch +++ b/distros/rolling/patch/ros2-rosidl-typesupport-introspection-c.patch @@ -1,3 +1,5 @@ +Generated .c/.cpp files installed into include/: https://github.com/ros2/rosidl/pull/1019 + diff --git a/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake b/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake index aaf9254..2812af3 100644 --- a/cmake/rosidl_typesupport_introspection_c_generate_interfaces.cmake diff --git a/distros/rolling/patch/ros2-rosidl-typesupport-introspection-cpp.patch b/distros/rolling/patch/ros2-rosidl-typesupport-introspection-cpp.patch index d7ee58f7e..c4830f82e 100644 --- a/distros/rolling/patch/ros2-rosidl-typesupport-introspection-cpp.patch +++ b/distros/rolling/patch/ros2-rosidl-typesupport-introspection-cpp.patch @@ -1,3 +1,5 @@ +Generated .c/.cpp files installed into include/: https://github.com/ros2/rosidl/pull/1019 + diff --git a/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake b/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake index ed1a3a6..ddb3b7b 100644 --- a/cmake/rosidl_typesupport_introspection_cpp_generate_interfaces.cmake