From 23b233a5838fa41e90fed586a73077b5288cbf76 Mon Sep 17 00:00:00 2001 From: alireza-moayyedi <137421365+alireza-moayyedi@users.noreply.github.com> Date: Tue, 27 Oct 2026 10:42:35 +0000 Subject: [PATCH 1/7] Add fields2cover --- shared/vinca.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/shared/vinca.yaml b/shared/vinca.yaml index d5fbc1f3..0eda4ea8 100644 --- a/shared/vinca.yaml +++ b/shared/vinca.yaml @@ -118,6 +118,7 @@ packages_select_by_deps: - diagnostic_remote_logging - diagnostics - diff_drive_controller + - fields2cover - flex_sync - foxglove_bridge - foxglove_msgs From b27f238bcc8f906dbe9360205da43fafab841a00 Mon Sep 17 00:00:00 2001 From: Tim Clephas Date: Tue, 27 Oct 2026 13:03:29 +0100 Subject: [PATCH 2/7] Fix compilation --- shared/patch/ros2-ortools-vendor.patch | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 shared/patch/ros2-ortools-vendor.patch diff --git a/shared/patch/ros2-ortools-vendor.patch b/shared/patch/ros2-ortools-vendor.patch new file mode 100644 index 00000000..cafd08e9 --- /dev/null +++ b/shared/patch/ros2-ortools-vendor.patch @@ -0,0 +1,25 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index fd967c2..5e3bc80 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -4,6 +4,13 @@ project(ortools_vendor LANGUAGES CXX VERSION "9.9.1") + find_package(ament_cmake REQUIRED) + find_package(ament_cmake_vendor_package REQUIRED) + ++# Abseil exports its librt as $<$:-lrt>; the conda sysroot ++# relocation then mangles that path. Pass the bare name so no path is exported. ++set(ORTOOLS_EXTRA_CMAKE_ARGS) ++if(CMAKE_SYSTEM_NAME STREQUAL "Linux") ++ list(APPEND ORTOOLS_EXTRA_CMAKE_ARGS -DLIBRT:STRING=rt) ++endif() ++ + ament_vendor( + ortools_vendor + VCS_URL https://github.com/google/or-tools.git +@@ -27,6 +34,7 @@ ament_vendor( + -DUSE_PDLP:BOOL=OFF + -DUSE_SCIP:BOOL=OFF + -DUSE_CPLEX:BOOL=OFF ++ ${ORTOOLS_EXTRA_CMAKE_ARGS} + PATCHES patches + ) From 3ad362a9a1620f39db7a45001bd2988ded8f9f2d Mon Sep 17 00:00:00 2001 From: Tim Clephas Date: Tue, 27 Oct 2026 14:13:07 +0100 Subject: [PATCH 3/7] fixup! Fix compilation --- distros/humble/ci.yaml | 4 +++- distros/jazzy/ci.yaml | 4 +++- distros/lyrical/ci.yaml | 4 +++- distros/rolling/ci.yaml | 4 +++- shared/patch/dependencies.yaml | 4 ++++ shared/patch/ros2-ortools-vendor.patch | 24 ++++++++++++++++++++---- shared/vinca.yaml | 2 +- 7 files changed, 37 insertions(+), 9 deletions(-) diff --git a/distros/humble/ci.yaml b/distros/humble/ci.yaml index 63d3a18e..089c2262 100644 --- a/distros/humble/ci.yaml +++ b/distros/humble/ci.yaml @@ -23,4 +23,6 @@ full_rebuild: false # # Remember that dependents are not rebuilt automatically: evict them as well if # they must pick up the change. -evict_cache: [] +evict_cache: + - fields2cover + - ortools_vendor diff --git a/distros/jazzy/ci.yaml b/distros/jazzy/ci.yaml index 63d3a18e..089c2262 100644 --- a/distros/jazzy/ci.yaml +++ b/distros/jazzy/ci.yaml @@ -23,4 +23,6 @@ full_rebuild: false # # Remember that dependents are not rebuilt automatically: evict them as well if # they must pick up the change. -evict_cache: [] +evict_cache: + - fields2cover + - ortools_vendor diff --git a/distros/lyrical/ci.yaml b/distros/lyrical/ci.yaml index 63d3a18e..089c2262 100644 --- a/distros/lyrical/ci.yaml +++ b/distros/lyrical/ci.yaml @@ -23,4 +23,6 @@ full_rebuild: false # # Remember that dependents are not rebuilt automatically: evict them as well if # they must pick up the change. -evict_cache: [] +evict_cache: + - fields2cover + - ortools_vendor diff --git a/distros/rolling/ci.yaml b/distros/rolling/ci.yaml index 63d3a18e..089c2262 100644 --- a/distros/rolling/ci.yaml +++ b/distros/rolling/ci.yaml @@ -23,4 +23,6 @@ full_rebuild: false # # Remember that dependents are not rebuilt automatically: evict them as well if # they must pick up the change. -evict_cache: [] +evict_cache: + - fields2cover + - ortools_vendor diff --git a/shared/patch/dependencies.yaml b/shared/patch/dependencies.yaml index 9d4b45db..ee88013f 100644 --- a/shared/patch/dependencies.yaml +++ b/shared/patch/dependencies.yaml @@ -127,6 +127,10 @@ open3d_conversions: # (which provides TBBConfig.cmake) -- add it explicitly so find_package(Open3D) # can resolve its own TBB dependency. add_host: ["tbb-devel"] +ortools_vendor: + # or-tools uses conda zlib (BUILD_ZLIB=OFF, see the patch); consumers find_dependency(ZLIB) + add_host: ["zlib"] + add_run: ["zlib"] pcl_ros: add_host: ["${{ 'libgl-devel' if linux }}", "${{ 'libopengl-devel' if linux }}", "libboost-devel"] plotjuggler_ros: diff --git a/shared/patch/ros2-ortools-vendor.patch b/shared/patch/ros2-ortools-vendor.patch index cafd08e9..32386372 100644 --- a/shared/patch/ros2-ortools-vendor.patch +++ b/shared/patch/ros2-ortools-vendor.patch @@ -1,11 +1,11 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index fd967c2..5e3bc80 100644 +index fd967c2..53182a6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -4,6 +4,13 @@ project(ortools_vendor LANGUAGES CXX VERSION "9.9.1") +@@ -4,13 +4,27 @@ project(ortools_vendor LANGUAGES CXX VERSION "9.9.1") find_package(ament_cmake REQUIRED) find_package(ament_cmake_vendor_package REQUIRED) - + +# Abseil exports its librt as $<$:-lrt>; the conda sysroot +# relocation then mangles that path. Pass the bare name so no path is exported. +set(ORTOOLS_EXTRA_CMAKE_ARGS) @@ -16,10 +16,26 @@ index fd967c2..5e3bc80 100644 ament_vendor( ortools_vendor VCS_URL https://github.com/google/or-tools.git -@@ -27,6 +34,7 @@ ament_vendor( + VCS_VERSION v9.9 + CMAKE_ARGS + -DCMAKE_BUILD_TYPE=Release +- -DBUILD_DEPS:BOOL=ON ++ # BUILD_DEPS=ON forces the bundled zlib, which doesn't compile against recent ++ # macOS SDKs (fdopen macro); build the other dependencies, take zlib from conda. ++ -DBUILD_DEPS:BOOL=OFF ++ -DBUILD_ZLIB:BOOL=OFF ++ -DBUILD_absl:BOOL=ON ++ -DBUILD_Protobuf:BOOL=ON ++ -DBUILD_Eigen3:BOOL=ON ++ -DBUILD_re2:BOOL=ON + -DCMAKE_POLICY_VERSION_MINIMUM:STRING=3.5 + -DBUILD_SAMPLES:BOOL=OFF + -DBUILD_EXAMPLES:BOOL=OFF +@@ -27,6 +41,7 @@ ament_vendor( -DUSE_PDLP:BOOL=OFF -DUSE_SCIP:BOOL=OFF -DUSE_CPLEX:BOOL=OFF + ${ORTOOLS_EXTRA_CMAKE_ARGS} PATCHES patches ) + diff --git a/shared/vinca.yaml b/shared/vinca.yaml index 0eda4ea8..0139503c 100644 --- a/shared/vinca.yaml +++ b/shared/vinca.yaml @@ -118,7 +118,6 @@ packages_select_by_deps: - diagnostic_remote_logging - diagnostics - diff_drive_controller - - fields2cover - flex_sync - foxglove_bridge - foxglove_msgs @@ -551,6 +550,7 @@ packages_select_by_deps: - event_camera_codecs # uses endian.h, unix-only; issue #228 - event_camera_renderer # doesn't support Windows shared library - ffmpeg_image_transport # TODO on windows: fix iconv link issue + - fields2cover # or-tools (ortools_vendor) exceeds the MSVC static library limit (LNK1189) - foxglove_compressed_video_transport - grid_map # rviz linking problems on Windows, see https://github.com/RoboStack/ros-jazzy/pull/79#issuecomment-2993499990 - grid_map_rviz_plugin # rviz linking problems on Windows, see https://github.com/RoboStack/ros-jazzy/pull/79#issuecomment-2993499990 From 8b1245848fdee384806267f2f6b96b7d6737cbdb Mon Sep 17 00:00:00 2001 From: Tim Clephas Date: Tue, 27 Oct 2026 14:23:00 +0100 Subject: [PATCH 4/7] fixup! fixup! Fix compilation --- shared/vinca.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/vinca.yaml b/shared/vinca.yaml index 0139503c..9a2de21f 100644 --- a/shared/vinca.yaml +++ b/shared/vinca.yaml @@ -448,6 +448,7 @@ packages_select_by_deps: - easynav_system - easynav_tools - easynav_vff_controller + - fields2cover # or-tools (ortools_vendor) exceeds the MSVC static library limit (LNK1189) - libcamera - mujoco_ros2_control # Isaac ROS deploy / Unitree G1 simulation; runtime uses Linux-specific files; mujoco_ros2_control_plugins needs EGL - mujoco_ros2_control_demos # Use readlink and access at runtime linux-specific file @@ -550,7 +551,6 @@ packages_select_by_deps: - event_camera_codecs # uses endian.h, unix-only; issue #228 - event_camera_renderer # doesn't support Windows shared library - ffmpeg_image_transport # TODO on windows: fix iconv link issue - - fields2cover # or-tools (ortools_vendor) exceeds the MSVC static library limit (LNK1189) - foxglove_compressed_video_transport - grid_map # rviz linking problems on Windows, see https://github.com/RoboStack/ros-jazzy/pull/79#issuecomment-2993499990 - grid_map_rviz_plugin # rviz linking problems on Windows, see https://github.com/RoboStack/ros-jazzy/pull/79#issuecomment-2993499990 From a2ee41cbf35b8cb771f7c194edbe5a2bbbe5400f Mon Sep 17 00:00:00 2001 From: Tim Clephas Date: Tue, 27 Oct 2026 20:40:20 +0100 Subject: [PATCH 5/7] Undo temps --- distros/humble/ci.yaml | 4 +--- distros/jazzy/ci.yaml | 4 +--- distros/lyrical/ci.yaml | 4 +--- distros/rolling/ci.yaml | 4 +--- shared/vinca.yaml | 2 +- 5 files changed, 5 insertions(+), 13 deletions(-) diff --git a/distros/humble/ci.yaml b/distros/humble/ci.yaml index 089c2262..63d3a18e 100644 --- a/distros/humble/ci.yaml +++ b/distros/humble/ci.yaml @@ -23,6 +23,4 @@ full_rebuild: false # # Remember that dependents are not rebuilt automatically: evict them as well if # they must pick up the change. -evict_cache: - - fields2cover - - ortools_vendor +evict_cache: [] diff --git a/distros/jazzy/ci.yaml b/distros/jazzy/ci.yaml index 089c2262..63d3a18e 100644 --- a/distros/jazzy/ci.yaml +++ b/distros/jazzy/ci.yaml @@ -23,6 +23,4 @@ full_rebuild: false # # Remember that dependents are not rebuilt automatically: evict them as well if # they must pick up the change. -evict_cache: - - fields2cover - - ortools_vendor +evict_cache: [] diff --git a/distros/lyrical/ci.yaml b/distros/lyrical/ci.yaml index 089c2262..63d3a18e 100644 --- a/distros/lyrical/ci.yaml +++ b/distros/lyrical/ci.yaml @@ -23,6 +23,4 @@ full_rebuild: false # # Remember that dependents are not rebuilt automatically: evict them as well if # they must pick up the change. -evict_cache: - - fields2cover - - ortools_vendor +evict_cache: [] diff --git a/distros/rolling/ci.yaml b/distros/rolling/ci.yaml index 089c2262..63d3a18e 100644 --- a/distros/rolling/ci.yaml +++ b/distros/rolling/ci.yaml @@ -23,6 +23,4 @@ full_rebuild: false # # Remember that dependents are not rebuilt automatically: evict them as well if # they must pick up the change. -evict_cache: - - fields2cover - - ortools_vendor +evict_cache: [] diff --git a/shared/vinca.yaml b/shared/vinca.yaml index 9a2de21f..1ed0ad67 100644 --- a/shared/vinca.yaml +++ b/shared/vinca.yaml @@ -448,7 +448,7 @@ packages_select_by_deps: - easynav_system - easynav_tools - easynav_vff_controller - - fields2cover # or-tools (ortools_vendor) exceeds the MSVC static library limit (LNK1189) + - fields2cover - libcamera - mujoco_ros2_control # Isaac ROS deploy / Unitree G1 simulation; runtime uses Linux-specific files; mujoco_ros2_control_plugins needs EGL - mujoco_ros2_control_demos # Use readlink and access at runtime linux-specific file From 500cb96e6706745a218fcdd0c2cf4ac03587045a Mon Sep 17 00:00:00 2001 From: Tim Clephas Date: Tue, 27 Oct 2026 22:52:35 +0100 Subject: [PATCH 6/7] Unvendor dependencies and patch for newer versions of them --- shared/patch/dependencies.yaml | 5 +- shared/patch/ros2-fields2cover.patch | 13 +++ shared/patch/ros2-ortools-vendor.patch | 148 ++++++++++++++++++++----- 3 files changed, 134 insertions(+), 32 deletions(-) create mode 100644 shared/patch/ros2-fields2cover.patch diff --git a/shared/patch/dependencies.yaml b/shared/patch/dependencies.yaml index ee88013f..0e5a9e9f 100644 --- a/shared/patch/dependencies.yaml +++ b/shared/patch/dependencies.yaml @@ -128,9 +128,8 @@ open3d_conversions: # can resolve its own TBB dependency. add_host: ["tbb-devel"] ortools_vendor: - # or-tools uses conda zlib (BUILD_ZLIB=OFF, see the patch); consumers find_dependency(ZLIB) - add_host: ["zlib"] - add_run: ["zlib"] + add_host: ["eigen", "libabseil", "libprotobuf", "re2", "zlib"] + add_run: ["eigen", "libabseil", "libprotobuf", "re2", "zlib"] pcl_ros: add_host: ["${{ 'libgl-devel' if linux }}", "${{ 'libopengl-devel' if linux }}", "libboost-devel"] plotjuggler_ros: diff --git a/shared/patch/ros2-fields2cover.patch b/shared/patch/ros2-fields2cover.patch new file mode 100644 index 00000000..f6cdb7e3 --- /dev/null +++ b/shared/patch/ros2-fields2cover.patch @@ -0,0 +1,13 @@ +diff --git a/cmake/F2CCompilerOptions.cmake b/cmake/F2CCompilerOptions.cmake +index 6eb7491..3f61f1d 100644 +--- a/cmake/F2CCompilerOptions.cmake ++++ b/cmake/F2CCompilerOptions.cmake +@@ -4,7 +4,7 @@ function(f2c_set_compiler_options target) + target_compile_options(${target} PRIVATE /W4 /WX) + else() + target_compile_options(${target} PRIVATE +- -Wall -Wextra -Werror -pedantic ++ -Wall -Wextra -pedantic + -Wno-unused-parameter -Wno-sign-compare + ) + endif() diff --git a/shared/patch/ros2-ortools-vendor.patch b/shared/patch/ros2-ortools-vendor.patch index 32386372..f9a7941d 100644 --- a/shared/patch/ros2-ortools-vendor.patch +++ b/shared/patch/ros2-ortools-vendor.patch @@ -1,41 +1,131 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index fd967c2..53182a6 100644 +index fd967c2..0c45489 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -4,13 +4,27 @@ project(ortools_vendor LANGUAGES CXX VERSION "9.9.1") - find_package(ament_cmake REQUIRED) - find_package(ament_cmake_vendor_package REQUIRED) - -+# Abseil exports its librt as $<$:-lrt>; the conda sysroot -+# relocation then mangles that path. Pass the bare name so no path is exported. -+set(ORTOOLS_EXTRA_CMAKE_ARGS) -+if(CMAKE_SYSTEM_NAME STREQUAL "Linux") -+ list(APPEND ORTOOLS_EXTRA_CMAKE_ARGS -DLIBRT:STRING=rt) -+endif() -+ - ament_vendor( - ortools_vendor - VCS_URL https://github.com/google/or-tools.git +@@ -10,7 +10,15 @@ ament_vendor( VCS_VERSION v9.9 CMAKE_ARGS -DCMAKE_BUILD_TYPE=Release - -DBUILD_DEPS:BOOL=ON -+ # BUILD_DEPS=ON forces the bundled zlib, which doesn't compile against recent -+ # macOS SDKs (fdopen macro); build the other dependencies, take zlib from conda. ++ # Take all dependencies from conda-forge instead of building + -DBUILD_DEPS:BOOL=OFF + -DBUILD_ZLIB:BOOL=OFF -+ -DBUILD_absl:BOOL=ON -+ -DBUILD_Protobuf:BOOL=ON -+ -DBUILD_Eigen3:BOOL=ON -+ -DBUILD_re2:BOOL=ON ++ -DBUILD_absl:BOOL=OFF ++ -DBUILD_Protobuf:BOOL=OFF ++ -DBUILD_Eigen3:BOOL=OFF ++ -DBUILD_re2:BOOL=OFF -DCMAKE_POLICY_VERSION_MINIMUM:STRING=3.5 -DBUILD_SAMPLES:BOOL=OFF -DBUILD_EXAMPLES:BOOL=OFF -@@ -27,6 +41,7 @@ ament_vendor( - -DUSE_PDLP:BOOL=OFF - -DUSE_SCIP:BOOL=OFF - -DUSE_CPLEX:BOOL=OFF -+ ${ORTOOLS_EXTRA_CMAKE_ARGS} - PATCHES patches - ) - +diff --git a/patches/0002-newer-abseil-protobuf.patch b/patches/0002-newer-abseil-protobuf.patch +new file mode 100644 +index 0000000..1ba42e6 +--- /dev/null ++++ b/patches/0002-newer-abseil-protobuf.patch +@@ -0,0 +1,106 @@ ++diff --git a/ortools/base/file.cc b/ortools/base/file.cc ++index 6588bb6..0642e0b 100644 ++--- a/ortools/base/file.cc +++++ b/ortools/base/file.cc ++@@ -240,7 +240,7 @@ namespace { ++ class NoOpErrorCollector : public google::protobuf::io::ErrorCollector { ++ public: ++ ~NoOpErrorCollector() override = default; ++- void AddError(int line, int column, const std::string& message) override {} +++ void RecordError(int line, int column, absl::string_view message) override {} ++ }; ++ } // namespace ++ ++diff --git a/ortools/base/logging.h b/ortools/base/logging.h ++index 4fdc7f8..9770766 100644 ++--- a/ortools/base/logging.h +++++ b/ortools/base/logging.h ++@@ -20,6 +20,7 @@ ++ #include "absl/log/check.h" ++ #include "absl/log/die_if_null.h" ++ #include "absl/log/log.h" +++#include "absl/log/vlog_is_on.h" ++ #include "absl/memory/memory.h" ++ #include "absl/status/status.h" ++ #include "absl/strings/str_cat.h" ++diff --git a/ortools/base/source_location.h b/ortools/base/source_location.h ++index ec0e295..2b0c2e9 100644 ++--- a/ortools/base/source_location.h +++++ b/ortools/base/source_location.h ++@@ -32,6 +32,10 @@ ++ ++ #include "absl/base/config.h" ++ +++#if __has_include("absl/types/source_location.h") +++// Abseil provides absl::SourceLocation itself since 2025. +++#include "absl/types/source_location.h" +++#else ++ namespace absl { ++ ++ // Class representing a specific location in the source code of a program. ++@@ -116,6 +120,7 @@ class SourceLocation { ++ }; ++ ++ } // namespace absl +++#endif ++ ++ // If a function takes an `absl::SourceLocation` parameter, pass this as the ++ // argument. ++diff --git a/ortools/base/strong_int.h b/ortools/base/strong_int.h ++index 3ec2e11..1b822bd 100644 ++--- a/ortools/base/strong_int.h +++++ b/ortools/base/strong_int.h ++@@ -149,6 +149,7 @@ ++ ++ #include ++ #include +++#include ++ #include // NOLINT ++ #include ++ ++diff --git a/ortools/port/proto_utils.h b/ortools/port/proto_utils.h ++index 535d634..ba0464b 100644 ++--- a/ortools/port/proto_utils.h +++++ b/ortools/port/proto_utils.h ++@@ -58,7 +58,7 @@ std::string ProtoEnumToString(ProtoEnumType enum_value) { ++ "Invalid enum value of: ", enum_value, " for enum type: ", ++ google::protobuf::GetEnumDescriptor()->name()); ++ } ++- return enum_value_descriptor->name(); +++ return std::string(enum_value_descriptor->name()); ++ #endif // !defined(__PORTABLE_PLATFORM__) ++ } ++ ++diff --git a/ortools/util/file_util.cc b/ortools/util/file_util.cc ++index 7cae476..d486e41 100644 ++--- a/ortools/util/file_util.cc +++++ b/ortools/util/file_util.cc ++@@ -163,7 +163,7 @@ absl::Status WriteProtoToFile(absl::string_view filename, ++ case ProtoWriteFormat::kJson: { ++ google::protobuf::util::JsonPrintOptions options; ++ options.add_whitespace = true; ++- options.always_print_primitive_fields = true; +++ options.always_print_fields_with_no_presence = true; ++ options.preserve_proto_field_names = true; ++ if (!google::protobuf::util::MessageToJsonString(proto, &output_string, ++ options) ++diff --git a/ortools/util/parse_proto.cc b/ortools/util/parse_proto.cc ++index 0c3a53d..e507533 100644 ++--- a/ortools/util/parse_proto.cc +++++ b/ortools/util/parse_proto.cc ++@@ -36,11 +36,11 @@ class TextFormatErrorCollector : public google::protobuf::io::ErrorCollector { ++ TextFormatErrorCollector() = default; ++ ~TextFormatErrorCollector() override = default; ++ ++- void AddError(int line, int column, const std::string& message) override { ++- collected_errors_.push_back({false, line, column, message}); +++ void RecordError(int line, int column, absl::string_view message) override { +++ collected_errors_.push_back({false, line, column, std::string(message)}); ++ } ++- void AddWarning(int line, int column, const std::string& message) override { ++- collected_errors_.push_back({true, line, column, message}); +++ void RecordWarning(int line, int column, absl::string_view message) override { +++ collected_errors_.push_back({true, line, column, std::string(message)}); ++ } ++ ++ // Returns a string listing each collected error. When an error is associated From ffef413d86721ac74ab39a99df6d364c4acc93c3 Mon Sep 17 00:00:00 2001 From: Tim Clephas Date: Tue, 27 Oct 2026 23:08:32 +0100 Subject: [PATCH 7/7] fixup! Unvendor dependencies and patch for newer versions of them --- shared/patch/ros2-ortools-vendor.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/patch/ros2-ortools-vendor.patch b/shared/patch/ros2-ortools-vendor.patch index f9a7941d..71c83c4d 100644 --- a/shared/patch/ros2-ortools-vendor.patch +++ b/shared/patch/ros2-ortools-vendor.patch @@ -2,7 +2,7 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt index fd967c2..0c45489 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -10,7 +10,15 @@ ament_vendor( +@@ -10,7 +10,13 @@ ament_vendor( VCS_VERSION v9.9 CMAKE_ARGS -DCMAKE_BUILD_TYPE=Release