From 66f30796886a3cb4a652836ec0e9b24eab8e55e4 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Fri, 10 Jan 2025 11:57:36 +0100 Subject: [PATCH 1/8] Enable more packages on Windows --- vinca_win.yaml | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/vinca_win.yaml b/vinca_win.yaml index 708c5ea..021d7bc 100644 --- a/vinca_win.yaml +++ b/vinca_win.yaml @@ -25,7 +25,6 @@ packages_skip_by_deps: - rttest - tlsf - tlsf_cpp - - gripper_controllers packages_remove_from_deps: - cartographer @@ -34,7 +33,6 @@ packages_remove_from_deps: - rttest - tlsf - tlsf_cpp - - gripper_controllers skip_existing: # - output @@ -48,30 +46,30 @@ packages_select_by_deps: - ros_base - ros_environment - ros_workspace - # - dev_tools - # - diagnostics - # - teleop - # - robot - # - perception + - dev_tools + - diagnostics + - teleop + - robot + - perception # - navigation2 - # - simulation - # - desktop_full + - simulation + - desktop_full - # - moveit - # - moveit-planners-chomp + - moveit + - moveit-planners-chomp - ros_gz - # - slam_toolbox - # - turtlebot3 + - slam_toolbox + - turtlebot3 - # - plotjuggler-ros + - plotjuggler-ros - # - apriltag_ros + - apriltag_ros - # - ackermann-msgs - # - velodyne - # - sbg_driver - # - gtsam + - ackermann-msgs + - velodyne + - sbg_driver + - gtsam patch_dir: patch From 96ce1bea4458885d9a640bf4da45865fde142d1a Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Sat, 11 Jan 2025 07:08:13 +1000 Subject: [PATCH 2/8] Avoid unnecessary and broken libgl installs on aarch64; we don't do it on the main branch --- .github/workflows/testpr.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/testpr.yml b/.github/workflows/testpr.yml index 9cca185..0c3fa38 100644 --- a/.github/workflows/testpr.yml +++ b/.github/workflows/testpr.yml @@ -54,12 +54,12 @@ jobs: # export GIT_BRANCH="$(basename $GITHUB_REF)" # echo "::endgroup::" - - name: Install libgl1-mesa-dev (only for linux-aarch64) - if: matrix.platform == 'linux-aarch64' - shell: bash -l {0} - run: | - sudo apt-get update - sudo apt-get install -y libgl1-mesa-dev libglu1-mesa-dev libx11-dev libxi-dev libxmu-dev + # - name: Install libgl1-mesa-dev (only for linux-aarch64) + # if: matrix.platform == 'linux-aarch64' + # shell: bash -l {0} + # run: | + # sudo apt-get update + # sudo apt-get install -y libgl1-mesa-dev libglu1-mesa-dev libx11-dev libxi-dev libxmu-dev # For some reason, the Strawberry perl's pkg-config is found # instead of the conda's one, so let's delete the /c/Strawberry directory From 84a34b941b01ad4152d58da838b4265eef0ebc37 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Mon, 20 Jan 2025 00:59:47 +0100 Subject: [PATCH 3/8] windows fixes --- .github/workflows/main.yml | 12 +- env/robostackenv.yaml | 2 +- patch/dependencies.yaml | 6 +- patch/ros-jazzy-angles.win.patch | 11 + patch/ros-jazzy-behaviortree-cpp.win.patch | 24 + patch/ros-jazzy-control-toolbox.win.patch | 32 + .../ros-jazzy-diagnostic-aggregator.win.patch | 9 + patch/ros-jazzy-diagnostic-updater.win.patch | 9 + patch/ros-jazzy-filters.win.patch | 9 + ...jazzy-forward-command-controller.win.patch | 22 + patch/ros-jazzy-gripper-controllers.patch | 16 + ...> ros-jazzy-hardware-interface.unix.patch} | 0 patch/ros-jazzy-hardware-interface.win.patch | 8 + patch/ros-jazzy-image-proc.win.patch | 13 + patch/ros-jazzy-image-publisher.win.patch | 25 + patch/ros-jazzy-image-rotate.win.patch | 13 + patch/ros-jazzy-image-view.win.patch | 13 + patch/ros-jazzy-io-context.win.patch | 12 + patch/ros-jazzy-joint-limits-skip.win.patch | 12 + ...os-jazzy-joint-state-broadcaster.win.patch | 18 + patch/ros-jazzy-laser-filters.win.patch | 11 + patch/ros-jazzy-moveit-core.win.patch | 27 +- .../ros-jazzy-moveit-planners-stomp.win.patch | 13 + .../ros-jazzy-moveit-ros-benchmarks.win.patch | 12 + patch/ros-jazzy-moveit-ros-move-group.patch | 13 + .../ros-jazzy-moveit-ros-warehouse.win.patch | 13 + patch/ros-jazzy-moveit-setup-framework.patch | 19 + ...moveit-simple-controller-manager.win.patch | 13 + patch/ros-jazzy-nav2-amcl.win.patch | 15 + patch/ros-jazzy-nav2-behavior-tree.win.patch | 13 + ...-jazzy-nav2-constrained-smoother.win.patch | 78 +++ patch/ros-jazzy-nav2-map-server.win.patch | 13 + patch/ros-jazzy-nav2-msgs.win.patch | 17 + patch/ros-jazzy-nav2-rviz-plugins.win.patch | 34 ++ patch/ros-jazzy-nav2-smac-planner.win.patch | 35 ++ patch/ros-jazzy-nav2-util.patch | 4 +- ...ros-jazzy-nav2-waypoint-follower.win.patch | 13 + patch/ros-jazzy-opennav-docking-bt.win.patch | 16 + patch/ros-jazzy-opennav-docking.win.patch | 17 + patch/ros-jazzy-pcl-ros.win.patch | 12 + ...y-pilz-industrial-motion-planner.win.patch | 36 ++ ...patch => ros-jazzy-plotjuggler.unix.patch} | 30 +- patch/ros-jazzy-plotjuggler.win.patch | 568 ++++++++++++++++++ .../ros-jazzy-position-controllers.win.patch | 22 + patch/ros-jazzy-realtime-tools.win.patch | 29 + patch/ros-jazzy-robot-localization.win.patch | 13 + patch/ros-jazzy-rviz-common.win.patch | 21 + patch/ros-jazzy-sbg-driver.win.patch | 21 + patch/ros-jazzy-slam-toolbox.win.patch | 206 +++++++ patch/ros-jazzy-smclib.win.patch | 12 + pixi.lock | 14 +- pixi.toml | 12 +- pkg_additional_info.yaml | 6 + ...0-12-50-56.yaml => rosdistro_snapshot.yaml | 1 + tests/ros-jazzy-control-toolbox.yaml | 8 + vinca_linux_64.yaml | 1 + vinca_linux_aarch64.yaml | 1 + vinca_osx.yaml | 1 + vinca_osx_arm64.yaml | 1 + vinca_win.yaml | 15 +- 60 files changed, 1608 insertions(+), 64 deletions(-) create mode 100644 patch/ros-jazzy-angles.win.patch create mode 100644 patch/ros-jazzy-behaviortree-cpp.win.patch create mode 100644 patch/ros-jazzy-control-toolbox.win.patch create mode 100644 patch/ros-jazzy-diagnostic-aggregator.win.patch create mode 100644 patch/ros-jazzy-diagnostic-updater.win.patch create mode 100644 patch/ros-jazzy-filters.win.patch create mode 100644 patch/ros-jazzy-forward-command-controller.win.patch create mode 100644 patch/ros-jazzy-gripper-controllers.patch rename patch/{ros-jazzy-hardware-interface.patch => ros-jazzy-hardware-interface.unix.patch} (100%) create mode 100644 patch/ros-jazzy-hardware-interface.win.patch create mode 100644 patch/ros-jazzy-image-proc.win.patch create mode 100644 patch/ros-jazzy-image-publisher.win.patch create mode 100644 patch/ros-jazzy-image-rotate.win.patch create mode 100644 patch/ros-jazzy-image-view.win.patch create mode 100644 patch/ros-jazzy-io-context.win.patch create mode 100644 patch/ros-jazzy-joint-limits-skip.win.patch create mode 100644 patch/ros-jazzy-joint-state-broadcaster.win.patch create mode 100644 patch/ros-jazzy-laser-filters.win.patch create mode 100644 patch/ros-jazzy-moveit-planners-stomp.win.patch create mode 100644 patch/ros-jazzy-moveit-ros-benchmarks.win.patch create mode 100644 patch/ros-jazzy-moveit-ros-move-group.patch create mode 100644 patch/ros-jazzy-moveit-ros-warehouse.win.patch create mode 100644 patch/ros-jazzy-moveit-simple-controller-manager.win.patch create mode 100644 patch/ros-jazzy-nav2-amcl.win.patch create mode 100644 patch/ros-jazzy-nav2-behavior-tree.win.patch create mode 100644 patch/ros-jazzy-nav2-constrained-smoother.win.patch create mode 100644 patch/ros-jazzy-nav2-map-server.win.patch create mode 100644 patch/ros-jazzy-nav2-msgs.win.patch create mode 100644 patch/ros-jazzy-nav2-rviz-plugins.win.patch create mode 100644 patch/ros-jazzy-nav2-smac-planner.win.patch create mode 100644 patch/ros-jazzy-nav2-waypoint-follower.win.patch create mode 100644 patch/ros-jazzy-opennav-docking-bt.win.patch create mode 100644 patch/ros-jazzy-opennav-docking.win.patch create mode 100644 patch/ros-jazzy-pcl-ros.win.patch create mode 100644 patch/ros-jazzy-pilz-industrial-motion-planner.win.patch rename patch/{ros-jazzy-plotjuggler.patch => ros-jazzy-plotjuggler.unix.patch} (99%) create mode 100644 patch/ros-jazzy-plotjuggler.win.patch create mode 100644 patch/ros-jazzy-position-controllers.win.patch create mode 100644 patch/ros-jazzy-realtime-tools.win.patch create mode 100644 patch/ros-jazzy-robot-localization.win.patch create mode 100644 patch/ros-jazzy-rviz-common.win.patch create mode 100644 patch/ros-jazzy-sbg-driver.win.patch create mode 100644 patch/ros-jazzy-slam-toolbox.win.patch create mode 100644 patch/ros-jazzy-smclib.win.patch create mode 100644 pkg_additional_info.yaml rename snapshot_2025-01-10-12-50-56.yaml => rosdistro_snapshot.yaml (99%) create mode 100644 tests/ros-jazzy-control-toolbox.yaml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1e2626f..eb5a5c7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -20,13 +20,13 @@ jobs: python-version: '3.11' # Version range or exact version of a Python version to use, using SemVer's version range syntax - name: Install vinca run: | - pip install git+https://github.com/RoboStack/vinca.git@rattler-build-humble + pip install git+https://github.com/RoboStack/vinca.git - name: Generate recipes for linux-64 run: | git clean -fdx cp vinca_linux_64.yaml vinca.yaml - vinca --multiple --platform linux-64 + vinca --multiple --platform linux-64 --snapshot rosdistro_snapshot.yaml - name: Generate azure pipelines for linux-64 run: | vinca-gha --platform linux-64 --trigger-branch buildbranch_linux -d ./recipes --additional-recipes @@ -52,7 +52,7 @@ jobs: run: | git clean -fdx cp vinca_osx.yaml vinca.yaml - vinca --multiple --platform osx-64 + vinca --multiple --platform osx-64 --snapshot rosdistro_snapshot.yaml - name: Generate azure pipelines for osx-64 run: | vinca-gha --platform osx-64 --trigger-branch buildbranch_osx -d ./recipes --additional-recipes @@ -78,7 +78,7 @@ jobs: run: | git clean -fdx cp vinca_osx_arm64.yaml vinca.yaml - vinca --multiple --platform osx-arm64 + vinca --multiple --platform osx-arm64 --snapshot rosdistro_snapshot.yaml - name: Generate azure pipelines for osx-arm64 run: | vinca-gha --platform osx-arm64 --trigger-branch buildbranch_osx_arm64 -d ./recipes --additional-recipes @@ -104,7 +104,7 @@ jobs: run: | git clean -fdx cp vinca_win.yaml vinca.yaml - vinca --multiple --platform win-64 + vinca --multiple --platform win-64 --snapshot rosdistro_snapshot.yaml - name: Generate azure pipelines for win-64 run: | vinca-gha --platform win-64 --trigger-branch buildbranch_win -d ./recipes --additional-recipes @@ -130,7 +130,7 @@ jobs: run: | git clean -fdx cp vinca_linux_aarch64.yaml vinca.yaml - vinca --multiple --platform linux-aarch64 + vinca --multiple --platform linux-aarch64 --snapshot rosdistro_snapshot.yaml - name: Generate azure pipelines for linux-aarch64 run: | vinca-gha --platform linux-aarch64 --trigger-branch buildbranch_linux_aarch64 -d ./recipes --additional-recipes diff --git a/env/robostackenv.yaml b/env/robostackenv.yaml index da8a09d..190a683 100644 --- a/env/robostackenv.yaml +++ b/env/robostackenv.yaml @@ -14,4 +14,4 @@ dependencies: - rattler-build - pip - pip: - - git+https://github.com/RoboStack/vinca.git@rattler-build-humble + - git+https://github.com/RoboStack/vinca.git diff --git a/patch/dependencies.yaml b/patch/dependencies.yaml index 8f44cb4..0a62cfe 100644 --- a/patch/dependencies.yaml +++ b/patch/dependencies.yaml @@ -42,8 +42,8 @@ pcl_ros: add_host: ["REQUIRE_OPENGL", "libboost-devel"] rviz_rendering: add_host: ["glew"] -behaviortree_cpp_v3: - add_host: ["libboost-devel", "cppzmq"] +behaviortree_cpp: + add_host: ["libboost-devel", "cppzmq", "zeromq", "sqlite"] add_run: ["libboost"] plotjuggler: add_host: ["libxcb", "${{ 'elfutils' if linux }}", "ros-jazzy-ros-workspace"] @@ -157,7 +157,7 @@ rqt_image_overlay: add_host: ["REQUIRE_OPENGL"] slam_toolbox: add_build: ["${{ 'qt-main' if (build_platform != target_platform) }}"] - add_host: ["REQUIRE_OPENGL"] + add_host: ["REQUIRE_OPENGL", "blas-devel"] vision_msgs_rviz_plugins: add_build: ["${{ 'qt-main' if (build_platform != target_platform) }}"] add_host: ["REQUIRE_OPENGL"] diff --git a/patch/ros-jazzy-angles.win.patch b/patch/ros-jazzy-angles.win.patch new file mode 100644 index 0000000..5b6de7e --- /dev/null +++ b/patch/ros-jazzy-angles.win.patch @@ -0,0 +1,11 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f909972..5b6b6e8 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -19,3 +19,6 @@ find_package(ament_cmake REQUIRED) ++if(WIN32) ++ target_compile_definitions(angles INTERFACE _USE_MATH_DEFINES) ++endif() + + if(BUILD_TESTING) + find_package(ament_cmake_gtest REQUIRED) diff --git a/patch/ros-jazzy-behaviortree-cpp.win.patch b/patch/ros-jazzy-behaviortree-cpp.win.patch new file mode 100644 index 0000000..8fe9004 --- /dev/null +++ b/patch/ros-jazzy-behaviortree-cpp.win.patch @@ -0,0 +1,24 @@ +diff --git a/cmake/ament_build.cmake b/cmake/ament_build.cmake +index 55c3011b2..152268032 100644 +--- a/cmake/ament_build.cmake ++++ b/cmake/ament_build.cmake +@@ -10,7 +10,10 @@ if(BTCPP_SQLITE_LOGGING) + find_package(SQLite3 REQUIRED) + endif() + +-find_package(ament_index_cpp REQUIRED) ++find_package(ament_index_cpp REQUIRED) ++ ++set(BTCPP_EXTRA_INCLUDE_DIRS ${ZeroMQ_INCLUDE_DIRS} ++ ${SQLite3_INCLUDE_DIRS}) + + set( BTCPP_EXTRA_LIBRARIES + $ +@@ -26,6 +29,7 @@ set( BTCPP_BIN_DESTINATION bin ) + + mark_as_advanced( + BTCPP_EXTRA_LIBRARIES ++ BTCPP_EXTRA_INCLUDE_DIRS + BTCPP_LIB_DESTINATION + BTCPP_INCLUDE_DESTINATION + BTCPP_BIN_DESTINATION ) diff --git a/patch/ros-jazzy-control-toolbox.win.patch b/patch/ros-jazzy-control-toolbox.win.patch new file mode 100644 index 0000000..cd45298 --- /dev/null +++ b/patch/ros-jazzy-control-toolbox.win.patch @@ -0,0 +1,32 @@ +From 791d063ea62837e86831b7b4dda48b22e680d8cc Mon Sep 17 00:00:00 2001 +From: Christoph Froehlich +Date: Mon, 25 Nov 2024 20:11:09 +0000 +Subject: [PATCH] Export symbols on windows + +--- + CMakeLists.txt | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index cc1f551..30f4bad 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -7,11 +7,16 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") + endif() + + if(WIN32) +- # Enable Math Constants +- # https://docs.microsoft.com/en-us/cpp/c-runtime-library/math-constants?view=vs-2019 + add_compile_definitions( ++ # For math constants ++ # https://docs.microsoft.com/en-us/cpp/c-runtime-library/math-constants?view=vs-2019 + _USE_MATH_DEFINES ++ # Minimize Windows namespace collision ++ NOMINMAX ++ WIN32_LEAN_AND_MEAN + ) ++ # set the same behavior for windows as it is on linux ++ set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + endif() + + set(THIS_PACKAGE_INCLUDE_DEPENDS diff --git a/patch/ros-jazzy-diagnostic-aggregator.win.patch b/patch/ros-jazzy-diagnostic-aggregator.win.patch new file mode 100644 index 0000000..bb03327 --- /dev/null +++ b/patch/ros-jazzy-diagnostic-aggregator.win.patch @@ -0,0 +1,9 @@ +diff --git a/diagnostic_aggregator/CMakeLists.txt b/diagnostic_aggregator/CMakeLists.txt +index 6014edf3..bbcee116 100644 +--- a/diagnostic_aggregator/CMakeLists.txt ++++ b/diagnostic_aggregator/CMakeLists.txt +@@ -6,3 +6,4 @@ endif() ++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + + find_package(ament_cmake REQUIRED) + find_package(diagnostic_msgs REQUIRED) diff --git a/patch/ros-jazzy-diagnostic-updater.win.patch b/patch/ros-jazzy-diagnostic-updater.win.patch new file mode 100644 index 0000000..d8b1eb0 --- /dev/null +++ b/patch/ros-jazzy-diagnostic-updater.win.patch @@ -0,0 +1,9 @@ +diff --git a/diagnostic_updater/CMakeLists.txt b/diagnostic_updater/CMakeLists.txt +index eafa9891..9199df0d 100644 +--- a/diagnostic_updater/CMakeLists.txt ++++ b/diagnostic_updater/CMakeLists.txt +@@ -6,3 +6,4 @@ endif() ++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + + find_package(ament_cmake REQUIRED) + find_package(ament_cmake_ros REQUIRED) diff --git a/patch/ros-jazzy-filters.win.patch b/patch/ros-jazzy-filters.win.patch new file mode 100644 index 0000000..48c280f --- /dev/null +++ b/patch/ros-jazzy-filters.win.patch @@ -0,0 +1,9 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 32b9f9f..587d5ca 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -12,3 +12,4 @@ endif() ++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + + ############################################################################## + # Find dependencies diff --git a/patch/ros-jazzy-forward-command-controller.win.patch b/patch/ros-jazzy-forward-command-controller.win.patch new file mode 100644 index 0000000..9beebd7 --- /dev/null +++ b/patch/ros-jazzy-forward-command-controller.win.patch @@ -0,0 +1,22 @@ +diff --git a/forward_command_controller/CMakeLists.txt b/forward_command_controller/CMakeLists.txt +index bf027866d6..f7610c5f85 100644 +--- a/forward_command_controller/CMakeLists.txt ++++ b/forward_command_controller/CMakeLists.txt +@@ -1,5 +1,5 @@ + cmake_minimum_required(VERSION 3.16) +-project(forward_command_controller LANGUAGES CXX) ++project(forward_command_controller) + + if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") + add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable +@@ -7,6 +7,10 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") + -Werror=missing-braces) + endif() + ++# using this instead of visibility macros ++# S1 from https://github.com/ros-controls/ros2_controllers/issues/1053 ++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) ++ + set(THIS_PACKAGE_INCLUDE_DEPENDS + controller_interface + generate_parameter_library diff --git a/patch/ros-jazzy-gripper-controllers.patch b/patch/ros-jazzy-gripper-controllers.patch new file mode 100644 index 0000000..30d6128 --- /dev/null +++ b/patch/ros-jazzy-gripper-controllers.patch @@ -0,0 +1,16 @@ +diff --git a/gripper_controllers/CMakeLists.txt b/gripper_controllers/CMakeLists.txt +index 4ffdc76168..05174402d0 100644 +--- a/gripper_controllers/CMakeLists.txt ++++ b/gripper_controllers/CMakeLists.txt +@@ -1,11 +1,6 @@ + cmake_minimum_required(VERSION 3.16) + project(gripper_controllers) + +-if(APPLE OR WIN32) +- message(WARNING "gripper controllers are not available on OSX or Windows") +- return() +-endif() +- + if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") + add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable + -Werror=return-type -Werror=shadow -Werror=format -Werror=range-loop-construct diff --git a/patch/ros-jazzy-hardware-interface.patch b/patch/ros-jazzy-hardware-interface.unix.patch similarity index 100% rename from patch/ros-jazzy-hardware-interface.patch rename to patch/ros-jazzy-hardware-interface.unix.patch diff --git a/patch/ros-jazzy-hardware-interface.win.patch b/patch/ros-jazzy-hardware-interface.win.patch new file mode 100644 index 0000000..cd3251c --- /dev/null +++ b/patch/ros-jazzy-hardware-interface.win.patch @@ -0,0 +1,8 @@ +diff --git a/hardware_interface/CMakeLists.txt b/hardware_interface/CMakeLists.txt +index b4e0f6cab0..50120726bb 100644 +--- a/hardware_interface/CMakeLists.txt ++++ b/hardware_interface/CMakeLists.txt +@@ -57,3 +57,4 @@ target_include_directories(mock_components PUBLIC ++target_link_libraries(mock_components PUBLIC hardware_interface) + ament_target_dependencies(mock_components PUBLIC ${THIS_PACKAGE_INCLUDE_DEPENDS}) + diff --git a/patch/ros-jazzy-image-proc.win.patch b/patch/ros-jazzy-image-proc.win.patch new file mode 100644 index 0000000..57d4c3a --- /dev/null +++ b/patch/ros-jazzy-image-proc.win.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4570eb7..54bfe64 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -6,6 +6,8 @@ if(NOT CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 14) + endif() + ++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) ++ + if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) + endif() diff --git a/patch/ros-jazzy-image-publisher.win.patch b/patch/ros-jazzy-image-publisher.win.patch new file mode 100644 index 0000000..b3bd9e0 --- /dev/null +++ b/patch/ros-jazzy-image-publisher.win.patch @@ -0,0 +1,25 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index cb41c81..88460ba 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,6 +1,8 @@ + cmake_minimum_required(VERSION 3.5) + project(image_publisher) + ++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) ++ + # Default to C++14 + if(NOT CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 14) + +diff --git a/src/image_publisher.cpp b/src/image_publisher.cpp +index 667e7209c..2f75459c1 100644 +--- a/src/image_publisher.cpp ++++ b/src/image_publisher.cpp +@@ -34,3 +34,6 @@ ++#ifndef _USE_MATH_DEFINES ++#define _USE_MATH_DEFINES ++#endif + #include + #include + #include diff --git a/patch/ros-jazzy-image-rotate.win.patch b/patch/ros-jazzy-image-rotate.win.patch new file mode 100644 index 0000000..823e156 --- /dev/null +++ b/patch/ros-jazzy-image-rotate.win.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 49c3b94..8445833 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -6,6 +6,8 @@ if(NOT CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 14) + endif() + ++add_compile_definitions(_USE_MATH_DEFINES) ++ + if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) + endif() diff --git a/patch/ros-jazzy-image-view.win.patch b/patch/ros-jazzy-image-view.win.patch new file mode 100644 index 0000000..0625c01 --- /dev/null +++ b/patch/ros-jazzy-image-view.win.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 27231ef..0b0246f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -5,6 +5,8 @@ if(NOT CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 14) + endif() + ++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) ++ + if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) + endif() diff --git a/patch/ros-jazzy-io-context.win.patch b/patch/ros-jazzy-io-context.win.patch new file mode 100644 index 0000000..fc76cb7 --- /dev/null +++ b/patch/ros-jazzy-io-context.win.patch @@ -0,0 +1,12 @@ +diff --git a/io_context/CMakeLists.txt b/io_context/CMakeLists.txt +index 54804aa..3c04653 100644 +--- a/io_context/CMakeLists.txt ++++ b/io_context/CMakeLists.txt +@@ -25,6 +25,7 @@ endif() + if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) + endif() ++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + + ## dependencies + find_package(ament_cmake_auto REQUIRED) diff --git a/patch/ros-jazzy-joint-limits-skip.win.patch b/patch/ros-jazzy-joint-limits-skip.win.patch new file mode 100644 index 0000000..2e5f35f --- /dev/null +++ b/patch/ros-jazzy-joint-limits-skip.win.patch @@ -0,0 +1,12 @@ +diff --git a/joint_limits/src/joint_soft_limiter.cpp b/joint_limits/src/joint_soft_limiter.cpp +index a2292cb033..622a320384 100644 +--- a/joint_limits/src/joint_soft_limiter.cpp ++++ b/joint_limits/src/joint_soft_limiter.cpp +@@ -13,6 +13,7 @@ + // limitations under the License. + + /// \author AdriĆ  Roig Moreno ++#define _USE_MATH_DEFINES + #include "joint_limits/joint_soft_limiter.hpp" + + namespace joint_limits diff --git a/patch/ros-jazzy-joint-state-broadcaster.win.patch b/patch/ros-jazzy-joint-state-broadcaster.win.patch new file mode 100644 index 0000000..f94862b --- /dev/null +++ b/patch/ros-jazzy-joint-state-broadcaster.win.patch @@ -0,0 +1,18 @@ +diff --git a/joint_state_broadcaster/include/joint_state_broadcaster/joint_state_broadcaster.hpp b/joint_state_broadcaster/include/joint_state_broadcaster/joint_state_broadcaster.hpp +index f1c532dce9..9eb7ab8a13 100644 +--- a/joint_state_broadcaster/include/joint_state_broadcaster/joint_state_broadcaster.hpp ++++ b/joint_state_broadcaster/include/joint_state_broadcaster/joint_state_broadcaster.hpp +@@ -88,9 +88,13 @@ class JointStateBroadcaster : public controller_interface::ControllerInterface + const rclcpp_lifecycle::State & previous_state) override; + + protected: ++ JOINT_STATE_BROADCASTER_PUBLIC + bool init_joint_data(); ++ JOINT_STATE_BROADCASTER_PUBLIC + void init_joint_state_msg(); ++ JOINT_STATE_BROADCASTER_PUBLIC + void init_dynamic_joint_state_msg(); ++ JOINT_STATE_BROADCASTER_PUBLIC + bool use_all_available_interfaces() const; + + protected: diff --git a/patch/ros-jazzy-laser-filters.win.patch b/patch/ros-jazzy-laser-filters.win.patch new file mode 100644 index 0000000..d68ae20 --- /dev/null +++ b/patch/ros-jazzy-laser-filters.win.patch @@ -0,0 +1,11 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 3bb5bfd..b9f334b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -23,1 +23,6 @@ ament_auto_add_library(laser_scan_filters SHARED src/laser_scan_filters.cpp) ++find_package(Boost REQUIRED COMPONENTS thread) ++target_link_libraries(laser_scan_filters Boost::thread) ++set_target_properties(laser_scan_filters PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) ++set_target_properties(laser_filter_chains PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) ++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS 1) + diff --git a/patch/ros-jazzy-moveit-core.win.patch b/patch/ros-jazzy-moveit-core.win.patch index 1459699..f4c5488 100644 --- a/patch/ros-jazzy-moveit-core.win.patch +++ b/patch/ros-jazzy-moveit-core.win.patch @@ -1,17 +1,10 @@ -diff --git a/moveit_core/collision_detection_fcl/CMakeLists.txt b/moveit_core/collision_detection_fcl/CMakeLists.txt -index 382dc41c70..99d49531ef 100644 ---- a/moveit_core/collision_detection_fcl/CMakeLists.txt -+++ b/moveit_core/collision_detection_fcl/CMakeLists.txt -@@ -14,11 +14,11 @@ ament_target_dependencies(${MOVEIT_LIB_NAME} - urdf - urdfdom - urdfdom_headers -- LIBFCL - visualization_msgs - ) - target_link_libraries(${MOVEIT_LIB_NAME} - moveit_collision_detection -+ ${LIBFCL_LINK_LIBRARIES} - ) - - add_library(collision_detector_fcl_plugin SHARED src/collision_detector_fcl_plugin_loader.cpp) +diff --git a/moveit_core/online_signal_smoothing/src/acceleration_filter.cpp b/moveit_core/online_signal_smoothing/src/acceleration_filter.cpp +index 3e6b3de049..3bafe55098 100644 +--- a/moveit_core/online_signal_smoothing/src/acceleration_filter.cpp ++++ b/moveit_core/online_signal_smoothing/src/acceleration_filter.cpp +@@ -224,3 +224,3 @@ double jointLimitAccelerationScalingFactor(const Eigen::VectorXd& accelerations, +- min_scaling_factor = std::min(min_scaling_factor, joint_scaling_factor); ++ min_scaling_factor = (std::min)(min_scaling_factor, joint_scaling_factor); + } + ++idx; + } diff --git a/patch/ros-jazzy-moveit-planners-stomp.win.patch b/patch/ros-jazzy-moveit-planners-stomp.win.patch new file mode 100644 index 0000000..42de809 --- /dev/null +++ b/patch/ros-jazzy-moveit-planners-stomp.win.patch @@ -0,0 +1,13 @@ +diff --git a/moveit_planners/stomp/include/stomp_moveit/cost_functions.hpp b/moveit_planners/stomp/include/stomp_moveit/cost_functions.hpp +index b910cd3393..97350bec21 100644 +--- a/moveit_planners/stomp/include/stomp_moveit/cost_functions.hpp ++++ b/moveit_planners/stomp/include/stomp_moveit/cost_functions.hpp +@@ -168,7 +168,7 @@ CostFn getCostFunctionFromStateValidator(const StateValidatorFn& state_validator + const long kernel_start = mu - static_cast(sigma) * 4; + const long kernel_end = mu + static_cast(sigma) * 4; + const long bounded_kernel_start = std::max(0l, kernel_start); +- const long bounded_kernel_end = std::min(values.cols() - 1, kernel_end); ++ const long bounded_kernel_end = std::min(static_cast(values.cols()) - 1, kernel_end); + for (auto j = bounded_kernel_start; j <= bounded_kernel_end; ++j) + { + costs(j) = std::exp(-std::pow(j - mu, 2) / (2 * std::pow(sigma, 2))) / (sigma * std::sqrt(2 * M_PI)); diff --git a/patch/ros-jazzy-moveit-ros-benchmarks.win.patch b/patch/ros-jazzy-moveit-ros-benchmarks.win.patch new file mode 100644 index 0000000..ac75eeb --- /dev/null +++ b/patch/ros-jazzy-moveit-ros-benchmarks.win.patch @@ -0,0 +1,12 @@ +diff --git a/moveit_ros/benchmarks/CMakeLists.txt b/moveit_ros/benchmarks/CMakeLists.txt +index 58538a70b9..7b60f0a220 100644 +--- a/moveit_ros/benchmarks/CMakeLists.txt ++++ b/moveit_ros/benchmarks/CMakeLists.txt +@@ -34,6 +34,7 @@ set_target_properties(moveit_ros_benchmarks + if(WIN32) + set(EXTRA_LIB ws2_32.lib) + endif() ++target_compile_features(moveit_ros_benchmarks PRIVATE cxx_std_20) + ament_target_dependencies(moveit_ros_benchmarks ${THIS_PACKAGE_INCLUDE_DEPENDS}) + target_link_libraries(moveit_ros_benchmarks ${EXTRA_LIB}) + diff --git a/patch/ros-jazzy-moveit-ros-move-group.patch b/patch/ros-jazzy-moveit-ros-move-group.patch new file mode 100644 index 0000000..87533b4 --- /dev/null +++ b/patch/ros-jazzy-moveit-ros-move-group.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2cdebb6ee9..ee4cc0abad 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -73,7 +73,7 @@ add_executable(list_move_group_capabilities src/list_capabilities.cpp) + ament_target_dependencies(list_move_group_capabilities + ${THIS_PACKAGE_INCLUDE_DEPENDS}) + target_link_libraries(list_move_group_capabilities +- moveit_move_group_capabilities_base fmt) ++ moveit_move_group_capabilities_base fmt::fmt) + + install(TARGETS move_group list_move_group_capabilities + RUNTIME DESTINATION lib/moveit_ros_move_group) diff --git a/patch/ros-jazzy-moveit-ros-warehouse.win.patch b/patch/ros-jazzy-moveit-ros-warehouse.win.patch new file mode 100644 index 0000000..d515f79 --- /dev/null +++ b/patch/ros-jazzy-moveit-ros-warehouse.win.patch @@ -0,0 +1,13 @@ +diff --git a/moveit_ros/warehouse/CMakeLists.txt b/moveit_ros/warehouse/CMakeLists.txt +index 825f6b11c7..e68e1d866b 100644 +--- a/moveit_ros/warehouse/CMakeLists.txt ++++ b/moveit_ros/warehouse/CMakeLists.txt +@@ -56,7 +56,7 @@ target_link_libraries(moveit_warehouse_broadcast moveit_warehouse) + add_executable(moveit_save_to_warehouse src/save_to_warehouse.cpp) + ament_target_dependencies(moveit_save_to_warehouse + ${THIS_PACKAGE_INCLUDE_DEPENDS}) +-target_link_libraries(moveit_save_to_warehouse moveit_warehouse fmt) ++target_link_libraries(moveit_save_to_warehouse moveit_warehouse fmt::fmt) + + add_executable(moveit_warehouse_import_from_text src/import_from_text.cpp) + ament_target_dependencies(moveit_warehouse_import_from_text diff --git a/patch/ros-jazzy-moveit-setup-framework.patch b/patch/ros-jazzy-moveit-setup-framework.patch index 2e50fa8..d68cb7c 100644 --- a/patch/ros-jazzy-moveit-setup-framework.patch +++ b/patch/ros-jazzy-moveit-setup-framework.patch @@ -121,6 +121,20 @@ index 72d9bf4af..3ca176656 100644 namespace moveit_setup { +@@ -121,7 +121,7 @@ void URDFConfig::setPackageName() + void URDFConfig::loadFromPackage(const std::filesystem::path& package_name, const std::filesystem::path& relative_path, + const std::string& xacro_args) + { +- const std::filesystem::path package_path = getSharePath(package_name); ++ const std::filesystem::path package_path = getSharePath(package_name.string()); + if (package_path.empty()) + { + throw std::runtime_error("URDF/COLLADA package not found: ''" + package_name.string()); + +diff --git a/src/urdf_config.cpp b/src/urdf_config.cpp +index 72d9bf4af..3ca176656 100644 +--- a/src/urdf_config.cpp ++++ b/src/urdf_config.cpp @@ -126,7 +127,7 @@ void URDFConfig::loadFromPackage(const std::filesystem::path& package_name, cons throw std::runtime_error("URDF/COLLADA package not found: ''" + package_name.string()); } @@ -145,6 +159,11 @@ index 72d9bf4af..3ca176656 100644 { throw std::runtime_error("Running xacro failed.\nPlease check console for errors."); } + +diff --git a/src/urdf_config.cpp b/src/urdf_config.cpp +index 72d9bf4af..3ca176656 100644 +--- a/src/urdf_config.cpp ++++ b/src/urdf_config.cpp @@ -154,7 +155,7 @@ void URDFConfig::load() { throw std::runtime_error("URDF/COLLADA file is not a valid robot model."); diff --git a/patch/ros-jazzy-moveit-simple-controller-manager.win.patch b/patch/ros-jazzy-moveit-simple-controller-manager.win.patch new file mode 100644 index 0000000..4b5abff --- /dev/null +++ b/patch/ros-jazzy-moveit-simple-controller-manager.win.patch @@ -0,0 +1,13 @@ +diff --git a/include/moveit_simple_controller_manager/action_based_controller_handle.hpp b/include/moveit_simple_controller_manager/action_based_controller_handle.hpp +index cce6cc991a..7087a88949 100644 +--- a/include/moveit_simple_controller_manager/action_based_controller_handle.hpp ++++ b/include/moveit_simple_controller_manager/action_based_controller_handle.hpp +@@ -145,7 +145,7 @@ class ActionBasedControllerHandle : public ActionBasedControllerHandleBase + do + { + status = result_future.wait_for(50ms); +- if ((status == std::future_status::timeout) and ((node_->now() - start) > timeout)) ++ if ((status == std::future_status::timeout) && ((node_->now() - start) > timeout)) + { + RCLCPP_WARN(logger_, "waitForExecution timed out"); + return false; diff --git a/patch/ros-jazzy-nav2-amcl.win.patch b/patch/ros-jazzy-nav2-amcl.win.patch new file mode 100644 index 0000000..9d73667 --- /dev/null +++ b/patch/ros-jazzy-nav2-amcl.win.patch @@ -0,0 +1,15 @@ +diff --git a/nav2_amcl/src/pf/CMakeLists.txt b/nav2_amcl/src/pf/CMakeLists.txt +index 3b4b2fa5ca1..8dc2ccb5719 100644 +--- a/nav2_amcl/src/pf/CMakeLists.txt ++++ b/nav2_amcl/src/pf/CMakeLists.txt +@@ -15,7 +15,9 @@ target_include_directories(pf_lib PRIVATE ../include) + if(HAVE_DRAND48) + target_compile_definitions(pf_lib PRIVATE "HAVE_DRAND48") + endif() +-target_link_libraries(pf_lib m) ++if(NOT WIN32) ++ target_link_libraries(pf_lib m) ++endif() + + install(TARGETS + pf_lib diff --git a/patch/ros-jazzy-nav2-behavior-tree.win.patch b/patch/ros-jazzy-nav2-behavior-tree.win.patch new file mode 100644 index 0000000..a861167 --- /dev/null +++ b/patch/ros-jazzy-nav2-behavior-tree.win.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 9de075152..ade316733 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -20,8 +20,6 @@ find_package(nav2_util REQUIRED) + + nav2_package() + +-add_compile_options(-Wno-shadow) # Delete after https://github.com/BehaviorTree/BehaviorTree.CPP/issues/811 is released +- + include_directories( + include + ) diff --git a/patch/ros-jazzy-nav2-constrained-smoother.win.patch b/patch/ros-jazzy-nav2-constrained-smoother.win.patch new file mode 100644 index 0000000..85328bd --- /dev/null +++ b/patch/ros-jazzy-nav2-constrained-smoother.win.patch @@ -0,0 +1,78 @@ +diff --git a/nav2_constrained_smoother/include/nav2_constrained_smoother/smoother.hpp b/nav2_constrained_smoother/include/nav2_constrained_smoother/smoother.hpp +index a0d5dfa115e..af9801d8995 100644 +--- a/nav2_constrained_smoother/include/nav2_constrained_smoother/smoother.hpp ++++ b/nav2_constrained_smoother/include/nav2_constrained_smoother/smoother.hpp +@@ -142,9 +142,9 @@ class Smoother + std::vector & optimized) + { + // Create costmap grid +- costmap_grid_ = std::make_shared>( ++ costmap_grid_ = std::make_shared>( + costmap->getCharMap(), 0, costmap->getSizeInCellsY(), 0, costmap->getSizeInCellsX()); +- auto costmap_interpolator = std::make_shared>>( ++ auto costmap_interpolator = std::make_shared>>( + *costmap_grid_); + + // Create residual blocks +@@ -394,7 +394,7 @@ class Smoother + + bool debug_; + ceres::Solver::Options options_; +- std::shared_ptr> costmap_grid_; ++ std::shared_ptr> costmap_grid_; + }; + + } // namespace nav2_constrained_smoother +diff --git a/nav2_constrained_smoother/include/nav2_constrained_smoother/smoother_cost_function.hpp b/nav2_constrained_smoother/include/nav2_constrained_smoother/smoother_cost_function.hpp +index 7253119721c..2cdd691cfab 100644 +--- a/nav2_constrained_smoother/include/nav2_constrained_smoother/smoother_cost_function.hpp ++++ b/nav2_constrained_smoother/include/nav2_constrained_smoother/smoother_cost_function.hpp +@@ -57,7 +57,7 @@ class SmootherCostFunction + double next_to_last_length_ratio, + bool reversing, + const nav2_costmap_2d::Costmap2D * costmap, +- const std::shared_ptr>> & costmap_interpolator, ++ const std::shared_ptr>> & costmap_interpolator, + const SmootherParams & params, + double costmap_weight) + : original_pos_(original_pos), +@@ -244,7 +244,7 @@ class SmootherCostFunction + double costmap_weight_; + Eigen::Vector2d costmap_origin_; + double costmap_resolution_; +- std::shared_ptr>> costmap_interpolator_; ++ std::shared_ptr>> costmap_interpolator_; + }; + + } // namespace nav2_constrained_smoother +diff --git a/nav2_constrained_smoother/test/test_smoother_cost_function.cpp b/nav2_constrained_smoother/test/test_smoother_cost_function.cpp +index 104b949c4be..79c9b064a16 100644 +--- a/nav2_constrained_smoother/test/test_smoother_cost_function.cpp ++++ b/nav2_constrained_smoother/test/test_smoother_cost_function.cpp +@@ -33,7 +33,7 @@ class TestableSmootherCostFunction : nav2_constrained_smoother::SmootherCostFunc + double next_to_last_length_ratio, + bool reversing, + const nav2_costmap_2d::Costmap2D * costmap, +- const std::shared_ptr>> & costmap_interpolator, ++ const std::shared_ptr>> & costmap_interpolator, + const nav2_constrained_smoother::SmootherParams & params, + double costmap_weight) + : SmootherCostFunction( +@@ -68,7 +68,7 @@ TEST_F(Test, testingCurvatureResidual) + nav2_costmap_2d::Costmap2D costmap; + TestableSmootherCostFunction fn( + Eigen::Vector2d(1.0, 0.0), 1.0, false, +- &costmap, std::shared_ptr>>(), ++ &costmap, std::shared_ptr>>(), + nav2_constrained_smoother::SmootherParams(), 0.0 + ); + +@@ -81,7 +81,7 @@ TEST_F(Test, testingCurvatureResidual) + params_no_min_turning_radius.max_curvature = 1.0f / 0.0; + TestableSmootherCostFunction fn_no_min_turning_radius( + Eigen::Vector2d(1.0, 0.0), 1.0, false, +- &costmap, std::shared_ptr>>(), ++ &costmap, std::shared_ptr>>(), + params_no_min_turning_radius, 0.0 + ); + EXPECT_EQ(fn_no_min_turning_radius.getCurvatureResidual(1.0, pt, pt_other, pt_other), 0.0); diff --git a/patch/ros-jazzy-nav2-map-server.win.patch b/patch/ros-jazzy-nav2-map-server.win.patch new file mode 100644 index 0000000..c6e1b2b --- /dev/null +++ b/patch/ros-jazzy-nav2-map-server.win.patch @@ -0,0 +1,13 @@ +diff --git a/src/map_io.cpp b/src/map_io.cpp +index b26b09be38..251985f487 100644 +--- a/src/map_io.cpp ++++ b/src/map_io.cpp +@@ -86,7 +86,7 @@ char * dirname(char * path) + /* This assignment is ill-designed but the XPG specs require to + return a string containing "." in any case no directory part is + found and so a static and constant string is required. */ +- path = reinterpret_cast(dot); ++ path = (char *)dot; + } + + return path; diff --git a/patch/ros-jazzy-nav2-msgs.win.patch b/patch/ros-jazzy-nav2-msgs.win.patch new file mode 100644 index 0000000..6be22fc --- /dev/null +++ b/patch/ros-jazzy-nav2-msgs.win.patch @@ -0,0 +1,17 @@ +diff --git a/nav2_msgs/CMakeLists.txt b/nav2_msgs/CMakeLists.txt +index a9f93b5ecbc..1e546801f52 100644 +--- a/nav2_msgs/CMakeLists.txt ++++ b/nav2_msgs/CMakeLists.txt +@@ -13,8 +13,10 @@ find_package(action_msgs REQUIRED) + + nav2_package() + +-# TODO(jwallace42): This is a work around for https://github.com/ros2/rosidl_typesupport_fastrtps/issues/28 +-add_compile_options(-Wno-error=deprecated) ++if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") ++ # TODO(jwallace42): This is a work around for https://github.com/ros2/rosidl_typesupport_fastrtps/issues/28 ++ add_compile_options(-Wno-error=deprecated) ++endif() + + rosidl_generate_interfaces(${PROJECT_NAME} + "msg/CollisionMonitorState.msg" diff --git a/patch/ros-jazzy-nav2-rviz-plugins.win.patch b/patch/ros-jazzy-nav2-rviz-plugins.win.patch new file mode 100644 index 0000000..7f5bbc4 --- /dev/null +++ b/patch/ros-jazzy-nav2-rviz-plugins.win.patch @@ -0,0 +1,34 @@ +diff --git a/nav2_rviz_plugins/include/nav2_rviz_plugins/goal_tool.hpp b/nav2_rviz_plugins/include/nav2_rviz_plugins/goal_tool.hpp +index 8451fe5294..0d94b8c7f0 100644 +--- a/nav2_rviz_plugins/include/nav2_rviz_plugins/goal_tool.hpp ++++ b/nav2_rviz_plugins/include/nav2_rviz_plugins/goal_tool.hpp +@@ -20,7 +20,6 @@ + #include + + #include "rviz_default_plugins/tools/pose/pose_tool.hpp" +-#include "rviz_default_plugins/visibility_control.hpp" + + namespace rviz_common + { +@@ -36,7 +35,7 @@ class StringProperty; + namespace nav2_rviz_plugins + { + +-class RVIZ_DEFAULT_PLUGINS_PUBLIC GoalTool : public rviz_default_plugins::tools::PoseTool ++class GoalTool : public rviz_default_plugins::tools::PoseTool + { + Q_OBJECT + +diff --git a/nav2_rviz_plugins/include/nav2_rviz_plugins/costmap_cost_tool.hpp b/nav2_rviz_plugins/include/nav2_rviz_plugins/costmap_cost_tool.hpp +index a14a9f98b5..6ad61996ac 100644 +--- a/nav2_rviz_plugins/include/nav2_rviz_plugins/costmap_cost_tool.hpp ++++ b/nav2_rviz_plugins/include/nav2_rviz_plugins/costmap_cost_tool.hpp +@@ -20,7 +20,8 @@ + #include + #include + #include +-#include ++#include ++#include + #include + diff --git a/patch/ros-jazzy-nav2-smac-planner.win.patch b/patch/ros-jazzy-nav2-smac-planner.win.patch new file mode 100644 index 0000000..7adfbd8 --- /dev/null +++ b/patch/ros-jazzy-nav2-smac-planner.win.patch @@ -0,0 +1,35 @@ +diff --git a/nav2_smac_planner/CMakeLists.txt b/nav2_smac_planner/CMakeLists.txt +index d9da9fd147..64c744c311 100644 +--- a/nav2_smac_planner/CMakeLists.txt ++++ b/nav2_smac_planner/CMakeLists.txt +@@ -23,6 +23,9 @@ find_package(eigen3_cmake_module REQUIRED) + find_package(Eigen3 REQUIRED) + find_package(angles REQUIRED) + find_package(ompl REQUIRED) ++find_package(ode REQUIRED) ++list(REMOVE_ITEM OMPL_LIBRARIES "ode_double") ++list(APPEND OMPL_LIBRARIES "ODE::ODE") + + if(NOT CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 17) + +diff --git a/nav2_smac_planner/include/nav2_smac_planner/a_star.hpp b/nav2_smac_planner/include/nav2_smac_planner/a_star.hpp +index 8b127960cc..a5dbbc262e 100644 +--- a/nav2_smac_planner/include/nav2_smac_planner/a_star.hpp ++++ b/nav2_smac_planner/include/nav2_smac_planner/a_star.hpp +@@ -26,7 +26,6 @@ + #include "nav2_costmap_2d/costmap_2d.hpp" + #include "nav2_core/planner_exceptions.hpp" + +-#include "nav2_smac_planner/thirdparty/robin_hood.h" + #include "nav2_smac_planner/analytic_expansion.hpp" + #include "nav2_smac_planner/node_2d.hpp" + #include "nav2_smac_planner/node_hybrid.hpp" +@@ -47,7 +46,7 @@ class AStarAlgorithm + { + public: + typedef NodeT * NodePtr; +- typedef robin_hood::unordered_node_map Graph; ++ typedef std::unordered_map Graph; + typedef std::vector NodeVector; + typedef std::pair> NodeElement; diff --git a/patch/ros-jazzy-nav2-util.patch b/patch/ros-jazzy-nav2-util.patch index f6a7129..babfabc 100644 --- a/patch/ros-jazzy-nav2-util.patch +++ b/patch/ros-jazzy-nav2-util.patch @@ -6,8 +6,8 @@ index 993eaf53b..83ab5ebaa 100644 void setSoftRealTimePriority() { -+#if defined(__APPLE__) -+ throw std::runtime_error("Cannot set as real-time thread on macOS!"); ++#if defined(__APPLE__) || defined(_WIN32) ++ throw std::runtime_error("Cannot set as real-time thread if not on Linux!"); +#else sched_param sch; sch.sched_priority = 49; diff --git a/patch/ros-jazzy-nav2-waypoint-follower.win.patch b/patch/ros-jazzy-nav2-waypoint-follower.win.patch new file mode 100644 index 0000000..d592203 --- /dev/null +++ b/patch/ros-jazzy-nav2-waypoint-follower.win.patch @@ -0,0 +1,13 @@ +diff --git a/nav2_waypoint_follower/plugins/photo_at_waypoint.cpp b/nav2_waypoint_follower/plugins/photo_at_waypoint.cpp +index ff878f4d39..77ff7f20aa 100644 +--- a/nav2_waypoint_follower/plugins/photo_at_waypoint.cpp ++++ b/nav2_waypoint_follower/plugins/photo_at_waypoint.cpp +@@ -119,7 +119,7 @@ bool PhotoAtWaypoint::processAtWaypoint( + std::lock_guard guard(global_mutex_); + cv::Mat curr_frame_mat; + deepCopyMsg2Mat(curr_frame_msg_, curr_frame_mat); +- cv::imwrite(full_path_image_path.c_str(), curr_frame_mat); ++ cv::imwrite(full_path_image_path.string().c_str(), curr_frame_mat); + RCLCPP_INFO( + logger_, + "Photo has been taken successfully at waypoint %i", curr_waypoint_index); diff --git a/patch/ros-jazzy-opennav-docking-bt.win.patch b/patch/ros-jazzy-opennav-docking-bt.win.patch new file mode 100644 index 0000000..e2dfe92 --- /dev/null +++ b/patch/ros-jazzy-opennav-docking-bt.win.patch @@ -0,0 +1,16 @@ +diff --git a/CMakeLists.txt b/opennav_docking_bt.txt +index fe81417..8047e34 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -16,7 +16,10 @@ find_package(behaviortree_cpp REQUIRED) + + # potentially replace with nav2_common, nav2_package() + set(CMAKE_CXX_STANDARD 17) +-add_compile_options(-Wall -Wextra -Wpedantic -Werror -Wdeprecated -fPIC -Wshadow -Wnull-dereference) ++if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") ++ add_compile_options(-Wall -Wextra -Wpedantic -Werror -Wdeprecated -fPIC -Wshadow -Wnull-dereference) ++endif() ++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + + include_directories( + include diff --git a/patch/ros-jazzy-opennav-docking.win.patch b/patch/ros-jazzy-opennav-docking.win.patch new file mode 100644 index 0000000..7fbaa46 --- /dev/null +++ b/patch/ros-jazzy-opennav-docking.win.patch @@ -0,0 +1,17 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 27505c7..ed660c0 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -26,7 +26,11 @@ find_package(opennav_docking_core REQUIRED) + + # potentially replace with nav2_common, nav2_package() + set(CMAKE_CXX_STANDARD 17) +-add_compile_options(-Wall -Wextra -Wpedantic -Werror -Wdeprecated -fPIC -Wshadow -Wnull-dereference) ++ ++if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") ++ add_compile_options(-Wall -Wextra -Wpedantic -Werror -Wdeprecated -fPIC -Wshadow -Wnull-dereference) ++endif() ++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + + include_directories( + include diff --git a/patch/ros-jazzy-pcl-ros.win.patch b/patch/ros-jazzy-pcl-ros.win.patch new file mode 100644 index 0000000..9cf614f --- /dev/null +++ b/patch/ros-jazzy-pcl-ros.win.patch @@ -0,0 +1,12 @@ +diff --git a/pcl_ros/CMakeLists.txt b/pcl_ros/CMakeLists.txt +index b45e67f5..c3562dc8 100644 +--- a/pcl_ros/CMakeLists.txt ++++ b/pcl_ros/CMakeLists.txt +@@ -7,6 +7,7 @@ endif() + if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic -fPIC) + endif() ++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + + ## Find system dependencies + find_package(Eigen3 REQUIRED) diff --git a/patch/ros-jazzy-pilz-industrial-motion-planner.win.patch b/patch/ros-jazzy-pilz-industrial-motion-planner.win.patch new file mode 100644 index 0000000..791a162 --- /dev/null +++ b/patch/ros-jazzy-pilz-industrial-motion-planner.win.patch @@ -0,0 +1,36 @@ +diff --git a/moveit_planners/pilz_industrial_motion_planner/include/joint_limits_copy/joint_limits_rosparam.hpp b/moveit_planners/pilz_industrial_motion_planner/include/joint_limits_copy/joint_limits_rosparam.hpp +index 89bd99f1da..b135d1c3d3 100644 +--- a/moveit_planners/pilz_industrial_motion_planner/include/joint_limits_copy/joint_limits_rosparam.hpp ++++ b/moveit_planners/pilz_industrial_motion_planner/include/joint_limits_copy/joint_limits_rosparam.hpp +@@ -32,7 +32,7 @@ namespace + template + void declareParameterTemplate(const rclcpp::Node::SharedPtr& node, const std::string& name, T default_value) + { +- if (not node->has_parameter(name)) ++ if (!node->has_parameter(name)) + { + node->declare_parameter(name, default_value); + } + +diff --git a/moveit_planners/pilz_industrial_motion_planner/src/trajectory_functions.cpp b/moveit_planners/pilz_industrial_motion_planner/src/trajectory_functions.cpp +index c1fccdf3bd..01a7f11b59 100644 +--- a/moveit_planners/pilz_industrial_motion_planner/src/trajectory_functions.cpp ++++ b/moveit_planners/pilz_industrial_motion_planner/src/trajectory_functions.cpp +@@ -117,7 +117,7 @@ bool pilz_industrial_motion_planner::computePoseIK(const planning_scene::Plannin + const double timeout) + { + Eigen::Isometry3d pose_eigen; +- tf2::convert(pose, pose_eigen); ++ tf2::fromMsg(pose, pose_eigen); + return computePoseIK(scene, group_name, link_name, pose_eigen, frame_id, seed, solution, check_self_collision, + timeout); + } +@@ -591,7 +591,7 @@ bool pilz_industrial_motion_planner::isStateColliding(const planning_scene::Plan + void normalizeQuaternion(geometry_msgs::msg::Quaternion& quat) + { + tf2::Quaternion q; +- tf2::convert(quat, q); ++ tf2::fromMsg(quat, q); + quat = tf2::toMsg(q.normalized()); + } + diff --git a/patch/ros-jazzy-plotjuggler.patch b/patch/ros-jazzy-plotjuggler.unix.patch similarity index 99% rename from patch/ros-jazzy-plotjuggler.patch rename to patch/ros-jazzy-plotjuggler.unix.patch index 9a0da52..827cdb5 100644 --- a/patch/ros-jazzy-plotjuggler.patch +++ b/patch/ros-jazzy-plotjuggler.unix.patch @@ -609,18 +609,18 @@ index 0bb68ebe..20855338 100644 --- a/3rdparty/sol/sol.hpp +++ b/3rdparty/sol/sol.hpp @@ -6747,12 +6747,9 @@ namespace sol { - /// one. - /// - /// \group emplace -- template -- T& emplace(Args&&... args) noexcept { -- static_assert(std::is_constructible::value, "T must be constructible with Args"); -- -- *this = nullopt; -- this->construct(std::forward(args)...); -+ T& emplace(T& arg) noexcept { -+ m_value = &arg; -+ return **this; - } - - /// Swaps this optional with the other. + /// one. + /// + /// \group emplace +- template +- T& emplace(Args&&... args) noexcept { +- static_assert(std::is_constructible::value, "T must be constructible with Args"); +- +- *this = nullopt; +- this->construct(std::forward(args)...); ++ T& emplace(T& arg) noexcept { ++ m_value = &arg; ++ return **this; + } + + /// Swaps this optional with the other. diff --git a/patch/ros-jazzy-plotjuggler.win.patch b/patch/ros-jazzy-plotjuggler.win.patch new file mode 100644 index 0000000..4f2685f --- /dev/null +++ b/patch/ros-jazzy-plotjuggler.win.patch @@ -0,0 +1,568 @@ +diff --git a/3rdparty/nlohmann/json.hpp b/3rdparty/nlohmann/json.hpp +index cb27e058..cecdb1fd 100644 +--- a/3rdparty/nlohmann/json.hpp ++++ b/3rdparty/nlohmann/json.hpp +@@ -3198,6 +3198,7 @@ template struct identity_tag {}; + #include // false_type, is_constructible, is_integral, is_same, true_type + #include // declval + #include // tuple ++#include // char_traits + + // #include + +@@ -3261,6 +3262,7 @@ struct iterator_traits::value>> + + + // #include ++// #include + + + namespace nlohmann +@@ -3272,6 +3274,7 @@ NLOHMANN_CAN_CALL_STD_FUNC_IMPL(begin); + + + // #include ++// #include + + + namespace nlohmann +@@ -3482,6 +3485,63 @@ struct has_to_json < BasicJsonType, T, enable_if_t < !is_basic_json::value >> + }; + + ++///////////////// ++// char_traits // ++///////////////// ++ ++// Primary template of char_traits calls std char_traits ++template ++struct char_traits : std::char_traits ++{}; ++ ++// Explicitly define char traits for unsigned char since it is not standard ++template<> ++struct char_traits : std::char_traits ++{ ++ using char_type = unsigned char; ++ using int_type = uint64_t; ++ ++ // Redefine to_int_type function ++ static int_type to_int_type(char_type c) noexcept ++ { ++ return static_cast(c); ++ } ++ ++ static char_type to_char_type(int_type i) noexcept ++ { ++ return static_cast(i); ++ } ++ ++ static constexpr int_type eof() noexcept ++ { ++ return static_cast(EOF); ++ } ++}; ++ ++// Explicitly define char traits for signed char since it is not standard ++template<> ++struct char_traits : std::char_traits ++{ ++ using char_type = signed char; ++ using int_type = uint64_t; ++ ++ // Redefine to_int_type function ++ static int_type to_int_type(char_type c) noexcept ++ { ++ return static_cast(c); ++ } ++ ++ static char_type to_char_type(int_type i) noexcept ++ { ++ return static_cast(i); ++ } ++ ++ static constexpr int_type eof() noexcept ++ { ++ return static_cast(EOF); ++ } ++}; ++ + /////////////////// + // is_ functions // + /////////////////// +@@ -5342,16 +5402,16 @@ class iterator_input_adapter + : current(std::move(first)), end(std::move(last)) + {} + +- typename std::char_traits::int_type get_character() ++ typename char_traits::int_type get_character() + { + if (JSON_HEDLEY_LIKELY(current != end)) + { +- auto result = std::char_traits::to_int_type(*current); ++ auto result = char_traits::to_int_type(*current); + std::advance(current, 1); + return result; + } + +- return std::char_traits::eof(); ++ return char_traits::eof(); + } + + private: +@@ -6517,7 +6577,7 @@ class lexer : public lexer_base + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using char_type = typename InputAdapterType::char_type; +- using char_int_type = typename std::char_traits::int_type; ++ using char_int_type = typename char_traits::int_type; + + public: + using token_type = typename lexer_base::token_type; +@@ -6667,7 +6727,7 @@ class lexer : public lexer_base + switch (get()) + { + // end of file while parsing string +- case std::char_traits::eof(): ++ case char_traits::eof(): + { + error_message = "invalid string: missing closing quote"; + return token_type::parse_error; +@@ -7256,7 +7316,7 @@ class lexer : public lexer_base + { + case '\n': + case '\r': +- case std::char_traits::eof(): ++ case char_traits::eof(): + case '\0': + return true; + +@@ -7273,7 +7333,7 @@ class lexer : public lexer_base + { + switch (get()) + { +- case std::char_traits::eof(): ++ case char_traits::eof(): + case '\0': + { + error_message = "invalid comment; missing closing '*/'"; +@@ -7702,10 +7762,10 @@ scan_number_done: + token_type scan_literal(const char_type* literal_text, const std::size_t length, + token_type return_type) + { +- JSON_ASSERT(std::char_traits::to_char_type(current) == literal_text[0]); ++ JSON_ASSERT(char_traits::to_char_type(current) == literal_text[0]); + for (std::size_t i = 1; i < length; ++i) + { +- if (JSON_HEDLEY_UNLIKELY(std::char_traits::to_char_type(get()) != literal_text[i])) ++ if (JSON_HEDLEY_UNLIKELY(char_traits::to_char_type(get()) != literal_text[i])) + { + error_message = "invalid literal"; + return token_type::parse_error; +@@ -7723,7 +7783,7 @@ scan_number_done: + { + token_buffer.clear(); + token_string.clear(); +- token_string.push_back(std::char_traits::to_char_type(current)); ++ token_string.push_back(char_traits::to_char_type(current)); + } + + /* +@@ -7731,7 +7791,7 @@ scan_number_done: + + This function provides the interface to the used input adapter. It does + not throw in case the input reached EOF, but returns a +- `std::char_traits::eof()` in that case. Stores the scanned characters ++ `char_traits::eof()` in that case. Stores the scanned characters + for use in error messages. + + @return character read from the input +@@ -7751,9 +7811,9 @@ scan_number_done: + current = ia.get_character(); + } + +- if (JSON_HEDLEY_LIKELY(current != std::char_traits::eof())) ++ if (JSON_HEDLEY_LIKELY(current != char_traits::eof())) + { +- token_string.push_back(std::char_traits::to_char_type(current)); ++ token_string.push_back(char_traits::to_char_type(current)); + } + + if (current == '\n') +@@ -7792,7 +7852,7 @@ scan_number_done: + --position.chars_read_current_line; + } + +- if (JSON_HEDLEY_LIKELY(current != std::char_traits::eof())) ++ if (JSON_HEDLEY_LIKELY(current != char_traits::eof())) + { + JSON_ASSERT(!token_string.empty()); + token_string.pop_back(); +@@ -7986,7 +8046,7 @@ scan_number_done: + // end of input (the null byte is needed when parsing from + // string literals) + case '\0': +- case std::char_traits::eof(): ++ case char_traits::eof(): + return token_type::end_of_input; + + // error +@@ -8004,7 +8064,7 @@ scan_number_done: + const bool ignore_comments = false; + + /// the current character +- char_int_type current = std::char_traits::eof(); ++ char_int_type current = char_traits::eof(); + + /// whether the next get() call should just return current + bool next_unget = false; +@@ -8235,7 +8295,7 @@ class binary_reader + using binary_t = typename BasicJsonType::binary_t; + using json_sax_t = SAX; + using char_type = typename InputAdapterType::char_type; +- using char_int_type = typename std::char_traits::int_type; ++ using char_int_type = typename char_traits::int_type; + + public: + /*! +@@ -8307,7 +8367,7 @@ class binary_reader + get(); + } + +- if (JSON_HEDLEY_UNLIKELY(current != std::char_traits::eof())) ++ if (JSON_HEDLEY_UNLIKELY(current != char_traits::eof())) + { + return sax->parse_error(chars_read, get_token_string(), + parse_error::create(110, chars_read, exception_message(format, "expected end of input; last byte: 0x" + get_token_string(), "value"), BasicJsonType())); +@@ -8389,7 +8449,7 @@ class binary_reader + return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read, exception_message(input_format_t::bson, "string length must be at least 1, is " + std::to_string(len), "string"), BasicJsonType())); + } + +- return get_string(input_format_t::bson, len - static_cast(1), result) && get() != std::char_traits::eof(); ++ return get_string(input_format_t::bson, len - static_cast(1), result) && get() != char_traits::eof(); + } + + /*! +@@ -8580,7 +8640,7 @@ class binary_reader + switch (get_char ? get() : current) + { + // EOF +- case std::char_traits::eof(): ++ case char_traits::eof(): + return unexpect_eof(input_format_t::cbor, "value"); + + // Integer 0x00..0x17 (0..23) +@@ -9350,7 +9410,7 @@ class binary_reader + switch (get()) + { + // EOF +- case std::char_traits::eof(): ++ case char_traits::eof(): + return unexpect_eof(input_format_t::msgpack, "value"); + + // positive fixint +@@ -10172,7 +10232,7 @@ class binary_reader + { + switch (prefix) + { +- case std::char_traits::eof(): // EOF ++ case char_traits::eof(): // EOF + return unexpect_eof(input_format_t::ubjson, "value"); + + case 'T': // true +@@ -10478,7 +10538,7 @@ class binary_reader + + This function provides the interface to the used input adapter. It does + not throw in case the input reached EOF, but returns a -'ve valued +- `std::char_traits::eof()` in that case. ++ `char_traits::eof()` in that case. + + @return character read from the input + */ +@@ -10618,7 +10678,7 @@ class binary_reader + JSON_HEDLEY_NON_NULL(3) + bool unexpect_eof(const input_format_t format, const char* context) const + { +- if (JSON_HEDLEY_UNLIKELY(current == std::char_traits::eof())) ++ if (JSON_HEDLEY_UNLIKELY(current == char_traits::eof())) + { + return sax->parse_error(chars_read, "", + parse_error::create(110, chars_read, exception_message(format, "unexpected end of input", context), BasicJsonType())); +@@ -10679,7 +10739,7 @@ class binary_reader + InputAdapterType ia; + + /// the current character +- char_int_type current = std::char_traits::eof(); ++ char_int_type current = char_traits::eof(); + + /// the number of characters read + std::size_t chars_read = 0; +@@ -16102,8 +16162,8 @@ class serializer + error_handler_t error_handler_ = error_handler_t::strict) + : o(std::move(s)) + , loc(std::localeconv()) +- , thousands_sep(loc->thousands_sep == nullptr ? '\0' : std::char_traits::to_char_type(* (loc->thousands_sep))) +- , decimal_point(loc->decimal_point == nullptr ? '\0' : std::char_traits::to_char_type(* (loc->decimal_point))) ++ , thousands_sep(loc->thousands_sep == nullptr ? '\0' : char_traits::to_char_type(* (loc->thousands_sep))) ++ , decimal_point(loc->decimal_point == nullptr ? '\0' : char_traits::to_char_type(* (loc->decimal_point))) + , indent_char(ichar) + , indent_string(512, indent_char) + , error_handler(error_handler_) +diff --git a/plotjuggler_plugins/ParserProtobuf/error_collectors.cpp b/plotjuggler_plugins/ParserProtobuf/error_collectors.cpp +index 761e0b73..b7ce4129 100644 +--- a/plotjuggler_plugins/ParserProtobuf/error_collectors.cpp ++++ b/plotjuggler_plugins/ParserProtobuf/error_collectors.cpp +@@ -2,38 +2,38 @@ + #include + #include + +-void FileErrorCollector::AddError(const std::string& filename, int line, int, +- const std::string& message) ++void FileErrorCollector::RecordError(const absl::string_view filename, int line, int, ++ const absl::string_view message) + { + auto msg = QString("File: [%1] Line: [%2] Message: %3\n\n") +- .arg(QString::fromStdString(filename)) ++ .arg(QString::fromStdString(std::string(filename))) + .arg(line) +- .arg(QString::fromStdString(message)); ++ .arg(QString::fromStdString(std::string(message))); + + _errors.push_back(msg); + } + +-void FileErrorCollector::AddWarning(const std::string& filename, int line, int, +- const std::string& message) ++void FileErrorCollector::RecordWarning(const absl::string_view filename, int line, int, ++ const absl::string_view message) + { + auto msg = QString("Warning [%1] line %2: %3") +- .arg(QString::fromStdString(filename)) ++ .arg(QString::fromStdString(std::string(filename))) + .arg(line) +- .arg(QString::fromStdString(message)); ++ .arg(QString::fromStdString(std::string(message))); + qDebug() << msg; + } + +-void IoErrorCollector::AddError(int line, google::protobuf::io::ColumnNumber, +- const std::string& message) ++void IoErrorCollector::RecordError(int line, google::protobuf::io::ColumnNumber, ++ const absl::string_view message) + { + _errors.push_back( +- QString("Line: [%1] Message: %2\n").arg(line).arg(QString::fromStdString(message))); ++ QString("Line: [%1] Message: %2\n").arg(line).arg(QString::fromStdString(std::string(message)))); + } + +-void IoErrorCollector::AddWarning(int line, google::protobuf::io::ColumnNumber column, +- const std::string& message) ++void IoErrorCollector::RecordWarning(int line, google::protobuf::io::ColumnNumber column, ++ const absl::string_view message) + { + qDebug() << QString("Line: [%1] Message: %2\n") + .arg(line) +- .arg(QString::fromStdString(message)); ++ .arg(QString::fromStdString(std::string(message))); + } +diff --git a/plotjuggler_plugins/ParserProtobuf/error_collectors.h b/plotjuggler_plugins/ParserProtobuf/error_collectors.h +index f70a881f..7afe1fea 100644 +--- a/plotjuggler_plugins/ParserProtobuf/error_collectors.h ++++ b/plotjuggler_plugins/ParserProtobuf/error_collectors.h +@@ -3,17 +3,18 @@ + + #include + #include ++#include + + #include + + class IoErrorCollector : public google::protobuf::io::ErrorCollector + { + public: +- void AddError(int line, google::protobuf::io::ColumnNumber column, +- const std::string& message) override; ++ void RecordError(int line, google::protobuf::io::ColumnNumber column, ++ const absl::string_view message) override; + +- void AddWarning(int line, google::protobuf::io::ColumnNumber column, +- const std::string& message) override; ++ void RecordWarning(int line, google::protobuf::io::ColumnNumber column, ++ const absl::string_view message) override; + + const QStringList& errors() + { +@@ -27,11 +28,11 @@ private: + class FileErrorCollector : public google::protobuf::compiler::MultiFileErrorCollector + { + public: +- void AddError(const std::string& filename, int line, int, +- const std::string& message) override; ++ void RecordError(const absl::string_view filename, int line, int, ++ const absl::string_view message) override; + +- void AddWarning(const std::string& filename, int line, int, +- const std::string& message) override; ++ void RecordWarning(const absl::string_view filename, int line, int, ++ const absl::string_view message) override; + + const QStringList& errors() + { +diff --git a/3rdparty/Qt-Advanced-Docking/CMakeLists.txt b/3rdparty/Qt-Advanced-Docking/CMakeLists.txt +index 6b650f1b..82c58edb 100644 +--- a/3rdparty/Qt-Advanced-Docking/CMakeLists.txt ++++ b/3rdparty/Qt-Advanced-Docking/CMakeLists.txt +@@ -67,7 +67,9 @@ target_link_libraries(qt_advanced_docking PUBLIC Qt5::Core Qt5::Gui Qt5::Widgets + + if(UNIX AND NOT APPLE) + target_link_libraries(qt_advanced_docking PUBLIC Qt5::X11Extras) +- target_link_libraries(qt_advanced_docking PRIVATE xcb) ++ find_package(XCB REQUIRED) ++ target_link_libraries(qt_advanced_docking PRIVATE ${XCB_LIBRARIES}) ++ target_include_directories(qt_advanced_docking SYSTEM PUBLIC ${XCB_INCLUDE_DIRS}) + endif() + + set_target_properties(qt_advanced_docking PROPERTIES +diff --git a/3rdparty/lua-5.4.3/CMakeLists.txt b/3rdparty/lua-5.4.3/CMakeLists.txt +index ad3dc012..a3da197b 100644 +--- a/3rdparty/lua-5.4.3/CMakeLists.txt ++++ b/3rdparty/lua-5.4.3/CMakeLists.txt +@@ -1,3 +1,5 @@ ++include_directories( ./src ) ++ + set(LUA_LIB_SRCS + ${CMAKE_CURRENT_SOURCE_DIR}/src/lapi.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/lcode.c +@@ -32,7 +34,7 @@ set(LUA_LIB_SRCS + ${CMAKE_CURRENT_SOURCE_DIR}/src/loadlib.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/linit.c + ) +-set(LUA_LIB_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/src) ++# set(LUA_LIB_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/src) + + if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang|AppleClang") + add_compile_options(-fPIC) +@@ -42,7 +44,7 @@ add_library(lua_static STATIC + ${LUA_LIB_SRCS} + ${CMAKE_CURRENT_SOURCE_DIR}/src/lua.c + ) +-target_include_directories(lua_static PUBLIC ${LUA_LIB_INCLUDE}) ++# target_include_directories(lua_static PUBLIC ${LUA_LIB_INCLUDE}) + + add_library(lua_objects OBJECT ${LUA_LIB_SRCS}) + +@@ -55,3 +57,11 @@ if(EMSCRIPTEN) + endif() + target_compile_definitions(lua_static PUBLIC ${LUA_DEFINITIONS}) + ++install( ++ TARGETS ++ lua_static ++ EXPORT export_lua_static ++ LIBRARY DESTINATION lib ++ ARCHIVE DESTINATION lib ++ RUNTIME DESTINATION bin ++ INCLUDES DESTINATION include ) +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 16477dd3..859f7320 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 3.10.2) ++cmake_minimum_required(VERSION 3.20) + + PROJECT(plotjuggler LANGUAGES C CXX VERSION 3.9.2) + +@@ -94,18 +94,6 @@ if (NOT WIN32) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer") + endif() + +-if(APPLE AND EXISTS /usr/local/opt/qt5) +- # Homebrew installs Qt5 (up to at least 5.9.1) in +- # /usr/local/qt5, ensure it can be found by CMake since +- # it is not in the default /usr/local prefix. +- # source: https://github.com/Homebrew/homebrew-core/issues/8392#issuecomment-325226494 +- list(APPEND CMAKE_PREFIX_PATH "/usr/local/opt/qt5") +- set(CMAKE_MACOSX_RPATH 1) +-elseif(APPLE AND EXISTS /opt/homebrew/opt/qt@5) +- list(APPEND CMAKE_PREFIX_PATH "/opt/homebrew/opt/qt@5") +- set(CMAKE_MACOSX_RPATH 1) +-endif() +- + find_package(Qt5 REQUIRED COMPONENTS + Core + Widgets +@@ -120,11 +108,9 @@ find_package(Qt5 REQUIRED COMPONENTS + set( QT_LINK_LIBRARIES + Qt5::Core + Qt5::Widgets +- Qt5::PrintSupport + Qt5::Xml + Qt5::Concurrent + Qt5::Svg +- Qt5::OpenGL + Qt5::WebSockets + ) + +@@ -191,7 +177,7 @@ if (BASE_AS_SHARED) + ${PLOTJUGGLER_BASE_SRC} + ${PLOTJUGGLER_BASE_MOCS} + ) +- target_link_libraries(plotjuggler_base PRIVATE lua_objects plotjuggler_qwt_objects) ++ target_link_libraries(plotjuggler_base PRIVATE ${QT_LINK_LIBRARIES} lua_objects plotjuggler_qwt_objects) + else() + add_library(plotjuggler_base STATIC + ${PLOTJUGGLER_BASE_SRC} +@@ -199,13 +185,6 @@ else() + ) + endif() + +-# target_link_libraries(plotjuggler_base plotjuggler_qwt) +- +-target_include_directories(plotjuggler_base INTERFACE +- $ +- $ +-) +- + ######################### INSTALL #################################### + + if(COMPILING_WITH_CATKIN) +diff --git a/plotjuggler_plugins/ParserProtobuf/CMakeLists.txt b/plotjuggler_plugins/ParserProtobuf/CMakeLists.txt +index f399fdad..4c89c787 100644 +--- a/plotjuggler_plugins/ParserProtobuf/CMakeLists.txt ++++ b/plotjuggler_plugins/ParserProtobuf/CMakeLists.txt +@@ -1,13 +1,6 @@ +-if(BUILDING_WITH_CONAN) +- message(STATUS "Finding Protobuf with conan") +- set(Protobuf_LIBS protobuf::libprotobuf) +-else() +- message(STATUS "Finding Protobuf without package managers") +- find_package(Protobuf QUIET) +- set(Protobuf_LIBS ${Protobuf_LIBRARIES}) +-endif() ++set(Protobuf_LIBS protobuf::libprotobuf) + +-find_package(Protobuf QUIET) ++find_package(Protobuf QUIET CONFIG) + + if( Protobuf_FOUND) + +diff --git a/3rdparty/sol/sol.hpp b/3rdparty/sol/sol.hpp +index 0bb68ebe..20855338 100644 +--- a/3rdparty/sol/sol.hpp ++++ b/3rdparty/sol/sol.hpp +@@ -6747,12 +6747,9 @@ namespace sol { + /// one. + /// + /// \group emplace +- template +- T& emplace(Args&&... args) noexcept { +- static_assert(std::is_constructible::value, "T must be constructible with Args"); +- +- *this = nullopt; +- this->construct(std::forward(args)...); ++ T& emplace(T& arg) noexcept { ++ m_value = &arg; ++ return **this; + } + diff --git a/patch/ros-jazzy-position-controllers.win.patch b/patch/ros-jazzy-position-controllers.win.patch new file mode 100644 index 0000000..535e5a7 --- /dev/null +++ b/patch/ros-jazzy-position-controllers.win.patch @@ -0,0 +1,22 @@ +diff --git a/position_controllers/CMakeLists.txt b/position_controllers/CMakeLists.txt +index e76b76555e..71ffd0eeba 100644 +--- a/position_controllers/CMakeLists.txt ++++ b/position_controllers/CMakeLists.txt +@@ -1,5 +1,5 @@ + cmake_minimum_required(VERSION 3.16) +-project(position_controllers LANGUAGES CXX) ++project(position_controllers) + + if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") + add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable +@@ -7,6 +7,10 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") + -Werror=missing-braces) + endif() + ++# using this instead of visibility macros ++# S1 from https://github.com/ros-controls/ros2_controllers/issues/1053 ++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) ++ + set(THIS_PACKAGE_INCLUDE_DEPENDS + forward_command_controller + pluginlib diff --git a/patch/ros-jazzy-realtime-tools.win.patch b/patch/ros-jazzy-realtime-tools.win.patch new file mode 100644 index 0000000..8c47df7 --- /dev/null +++ b/patch/ros-jazzy-realtime-tools.win.patch @@ -0,0 +1,29 @@ +diff --git a/include/realtime_tools/realtime_helpers.hpp b/include/realtime_tools/realtime_helpers.hpp +index ef486a49..6fea1fa2 100644 +--- a/include/realtime_tools/realtime_helpers.hpp ++++ b/include/realtime_tools/realtime_helpers.hpp +@@ -38,5 +38,8 @@ +-#include +-using NATIVE_THREAD_HANDLE = HANDLE; ++// Here we directly use void* instead of including windows.h ++// and using HANDLE macro to avoid polluting all the downstream ++// compilation units that include the public header realtime_helpers.hpp ++// with problematic macros like MIN, MAX or ERROR ++using NATIVE_THREAD_HANDLE = void*; + #else + using NATIVE_THREAD_HANDLE = pthread_t; + #endif + + +diff --git a/src/realtime_helpers.cpp b/src/realtime_helpers.cpp +index e55894ce..bbabf0bc 100644 +--- a/src/realtime_helpers.cpp ++++ b/src/realtime_helpers.cpp +@@ -31,4 +31,6 @@ +-#if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__)) ++#ifdef _WIN32 ++#include ++#else + #include + #include + #include diff --git a/patch/ros-jazzy-robot-localization.win.patch b/patch/ros-jazzy-robot-localization.win.patch new file mode 100644 index 0000000..478e6e5 --- /dev/null +++ b/patch/ros-jazzy-robot-localization.win.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 0da52adc..35b5b185 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -100,6 +100,8 @@ target_link_libraries(${library_name} PRIVATE + ${GeographicLib_LIBRARIES} + yaml-cpp::yaml-cpp + ) ++target_compile_definitions(${library_name} PRIVATE _USE_MATH_DEFINES) ++set_target_properties(${library_name} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) + + add_executable( + ekf_node diff --git a/patch/ros-jazzy-rviz-common.win.patch b/patch/ros-jazzy-rviz-common.win.patch new file mode 100644 index 0000000..36ac65a --- /dev/null +++ b/patch/ros-jazzy-rviz-common.win.patch @@ -0,0 +1,21 @@ +diff --git a/include/rviz_common/tool_manager.hpp b/include/rviz_common/tool_manager.hpp +index cb1711706..a70622342 100644 +--- a/include/rviz_common/tool_manager.hpp ++++ b/include/rviz_common/tool_manager.hpp +@@ -40,6 +40,7 @@ + + #include "rviz_common/factory/pluginlib_factory.hpp" + #include "rviz_common/tool.hpp" ++#include "rviz_common/visibility_control.hpp" + + class QKeyEvent; + +@@ -53,7 +54,7 @@ class PropertyTreeModel; + + } // namespace properties + +-class ToolManager : public QObject ++class RVIZ_COMMON_PUBLIC ToolManager : public QObject + { + Q_OBJECT + diff --git a/patch/ros-jazzy-sbg-driver.win.patch b/patch/ros-jazzy-sbg-driver.win.patch new file mode 100644 index 0000000..25251e9 --- /dev/null +++ b/patch/ros-jazzy-sbg-driver.win.patch @@ -0,0 +1,21 @@ +diff --git a/src/sbg_utm.cpp b/src/sbg_utm.cpp +index b49e84c..e0791e7 100644 +--- a/src/sbg_utm.cpp ++++ b/src/sbg_utm.cpp +@@ -1,2 +1,4 @@ ++#define _USE_MATH_DEFINES ++ + // File header + +diff --git a/src/message_wrapper.cpp b/src/message_wrapper.cpp +index d0c0b6d..2a646b9 100644 +--- a/src/message_wrapper.cpp ++++ b/src/message_wrapper.cpp +@@ -19,3 +19,7 @@ ++#ifndef M_SQRT2 ++#define M_SQRT2 1.41421356237309504880 /* sqrt(2) */ ++#endif ++ + /*! + * Class to wrap the SBG logs into ROS messages. + */ diff --git a/patch/ros-jazzy-slam-toolbox.win.patch b/patch/ros-jazzy-slam-toolbox.win.patch new file mode 100644 index 0000000..7e2ee07 --- /dev/null +++ b/patch/ros-jazzy-slam-toolbox.win.patch @@ -0,0 +1,206 @@ +diff --git a/lib/karto_sdk/CMakeLists.txt b/lib/karto_sdk/CMakeLists.txt +index a620bfd2e..196aab5d7 100644 +--- a/lib/karto_sdk/CMakeLists.txt ++++ b/lib/karto_sdk/CMakeLists.txt +@@ -5,7 +5,9 @@ if(NOT CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 17) + endif() + set(CMAKE_BUILD_TYPE Release) #None, Debug, Release, RelWithDebInfo, MinSizeRel +-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-backtrace-limit=0") ++if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-backtrace-limit=0") ++endif() + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/") + + find_package(ament_cmake REQUIRED) +@@ -29,6 +31,7 @@ add_definitions(${EIGEN3_DEFINITIONS}) + + include_directories(include ${EIGEN3_INCLUDE_DIRS} ${TBB_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS}) + add_library(kartoSlamToolbox SHARED src/Karto.cpp src/Mapper.cpp) ++target_compile_definitions(kartoSlamToolbox PRIVATE KARTO_DYNAMIC) + ament_target_dependencies(kartoSlamToolbox ${dependencies}) + target_link_libraries(kartoSlamToolbox ${Boost_LIBRARIES} TBB::tbb) + +diff --git a/lib/karto_sdk/src/Mapper.cpp b/lib/karto_sdk/src/Mapper.cpp +index 83e2af2ca..19d056dfb 100644 +--- a/lib/karto_sdk/src/Mapper.cpp ++++ b/lib/karto_sdk/src/Mapper.cpp +@@ -405,7 +405,7 @@ void MapperSensorManager::SetRunningScanBufferSize(kt_int32u rScanBufferSize) + m_RunningBufferMaximumSize = rScanBufferSize; + + std::vector names = GetSensorNames(); +- for (uint i = 0; i != names.size(); i++) { ++ for (unsigned int i = 0; i != names.size(); i++) { + GetScanManager(names[i])->SetRunningScanBufferSize(rScanBufferSize); + } + } +@@ -415,7 +415,7 @@ void MapperSensorManager::SetRunningScanBufferMaximumDistance(kt_double rScanBuf + m_RunningBufferMaximumDistance = rScanBufferMaxDistance; + + std::vector names = GetSensorNames(); +- for (uint i = 0; i != names.size(); i++) { ++ for (unsigned int i = 0; i != names.size(); i++) { + GetScanManager(names[i])->SetRunningScanBufferMaximumDistance(rScanBufferMaxDistance); + } + } +@@ -1868,7 +1868,7 @@ std::vector *> MapperGraph::FindNearByVertices( + + std::vector *> rtn_vertices; + rtn_vertices.reserve(ret_matches.size()); +- for (uint i = 0; i != ret_matches.size(); i++) { ++ for (unsigned int i = 0; i != ret_matches.size(); i++) { + rtn_vertices.push_back(vertices_to_search[ret_matches[i].first]); + } + return rtn_vertices; +@@ -2952,7 +2952,7 @@ void Mapper::ClearLocalizationBuffer() + } + + std::vector names = m_pMapperSensorManager->GetSensorNames(); +- for (uint i = 0; i != names.size(); i++) ++ for (unsigned int i = 0; i != names.size(); i++) + { + m_pMapperSensorManager->ClearRunningScans(names[i]); + m_pMapperSensorManager->ClearLastScan(names[i]); + +diff --git a/rviz_plugin/slam_toolbox_rviz_plugin.hpp b/rviz_plugin/slam_toolbox_rviz_plugin.hpp +index dafa5d0b7..905d515d6 100644 +--- a/rviz_plugin/slam_toolbox_rviz_plugin.hpp ++++ b/rviz_plugin/slam_toolbox_rviz_plugin.hpp +@@ -32,6 +32,7 @@ + #include + #include + #include ++#undef NO_ERROR + // STL + #include + #include + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 3880aa742..9157ce35e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -147,6 +147,11 @@ rosidl_get_typesupport_target(cpp_typesupport_target ${PROJECT_NAME} "rosidl_typ + target_link_libraries(ceres_solver_plugin "${cpp_typesupport_target}") + pluginlib_export_plugin_description_file(slam_toolbox solver_plugins.xml) + ++if(MSVC) ++ add_compile_definitions(_USE_MATH_DEFINES) ++ set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) ++endif() ++ + #### Tool lib for mapping + add_library(toolbox_common src/slam_toolbox_common.cpp src/map_saver.cpp src/loop_closure_assistant.cpp src/laser_utils.cpp src/slam_mapper.cpp) + ament_target_dependencies(toolbox_common +@@ -155,26 +159,43 @@ ament_target_dependencies(toolbox_common + target_link_libraries(toolbox_common kartoSlamToolbox ${Boost_LIBRARIES}) + rosidl_get_typesupport_target(cpp_typesupport_target ${PROJECT_NAME} "rosidl_typesupport_cpp") + target_link_libraries(toolbox_common "${cpp_typesupport_target}") ++set_target_properties(toolbox_common PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) + + #### Mapping executibles + add_library(async_slam_toolbox src/slam_toolbox_async.cpp) ++set_target_properties(async_slam_toolbox PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) + target_link_libraries(async_slam_toolbox toolbox_common kartoSlamToolbox ${Boost_LIBRARIES}) + add_executable(async_slam_toolbox_node src/slam_toolbox_async_node.cpp) ++if(MSVC) ++ target_compile_options(async_slam_toolbox_node PRIVATE "/F 40000000") ++endif() + target_link_libraries(async_slam_toolbox_node async_slam_toolbox) + + add_library(sync_slam_toolbox src/slam_toolbox_sync.cpp) ++set_target_properties(sync_slam_toolbox PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) + target_link_libraries(sync_slam_toolbox toolbox_common kartoSlamToolbox ${Boost_LIBRARIES}) + add_executable(sync_slam_toolbox_node src/slam_toolbox_sync_node.cpp) ++if(MSVC) ++ target_compile_options(sync_slam_toolbox_node PRIVATE "/F 40000000") ++endif() + target_link_libraries(sync_slam_toolbox_node sync_slam_toolbox) + + add_library(localization_slam_toolbox src/slam_toolbox_localization.cpp) ++set_target_properties(localization_slam_toolbox PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) + target_link_libraries(localization_slam_toolbox toolbox_common kartoSlamToolbox ${Boost_LIBRARIES}) + add_executable(localization_slam_toolbox_node src/slam_toolbox_localization_node.cpp) ++if(MSVC) ++ target_compile_options(localization_slam_toolbox_node PRIVATE "/F 40000000") ++endif() + target_link_libraries(localization_slam_toolbox_node localization_slam_toolbox) + + add_library(lifelong_slam_toolbox src/experimental/slam_toolbox_lifelong.cpp) ++set_target_properties(lifelong_slam_toolbox PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) + target_link_libraries(lifelong_slam_toolbox toolbox_common kartoSlamToolbox ${Boost_LIBRARIES}) + add_executable(lifelong_slam_toolbox_node src/experimental/slam_toolbox_lifelong_node.cpp) ++if(MSVC) ++ target_compile_options(lifelong_slam_toolbox_node PRIVATE "/F 40000000") ++endif() + target_link_libraries(lifelong_slam_toolbox_node lifelong_slam_toolbox) + + add_library(map_and_localization_slam_toolbox src/experimental/slam_toolbox_map_and_localization.cpp) +diff --git a/include/slam_toolbox/slam_toolbox_common.hpp b/include/slam_toolbox/slam_toolbox_common.hpp +index 96bd049d9..521a0830c 100644 +--- a/include/slam_toolbox/slam_toolbox_common.hpp ++++ b/include/slam_toolbox/slam_toolbox_common.hpp +@@ -19,7 +19,9 @@ + #ifndef SLAM_TOOLBOX__SLAM_TOOLBOX_COMMON_HPP_ + #define SLAM_TOOLBOX__SLAM_TOOLBOX_COMMON_HPP_ + ++#ifndef _WIN32 + #include ++#endif + #include + #include + #include +diff --git a/src/slam_toolbox_common.cpp b/src/slam_toolbox_common.cpp +index 916a20788..18c2fa2d1 100644 +--- a/src/slam_toolbox_common.cpp ++++ b/src/slam_toolbox_common.cpp +@@ -52,6 +52,11 @@ SlamToolbox::SlamToolbox(rclcpp::NodeOptions options) + this->declare_parameter( + "stack_size_to_use", rclcpp::ParameterType::PARAMETER_INTEGER, descriptor); + if (this->get_parameter("stack_size_to_use", stack_size)) { ++#ifdef _WIN32 ++ if (stack_size != 40'000'000) { ++ RCLCPP_WARN(get_logger(), "Can't dynamically change stack size on Windows to %i. Node using stack size 40000000", (int)stack_size); ++ } ++#else + RCLCPP_INFO(get_logger(), "Node using stack size %i", (int)stack_size); + const rlim_t max_stack_size = stack_size; + struct rlimit stack_limit; +@@ -60,6 +65,7 @@ SlamToolbox::SlamToolbox(rclcpp::NodeOptions options) + stack_limit.rlim_cur = stack_size; + } + setrlimit(RLIMIT_STACK, &stack_limit); ++#endif + } + } + // server side never times out from lifecycle manager + +diff --git a/include/slam_toolbox/merge_maps_kinematic.hpp b/include/slam_toolbox/merge_maps_kinematic.hpp +index 92102e499..680ef1927 100644 +--- a/include/slam_toolbox/merge_maps_kinematic.hpp ++++ b/include/slam_toolbox/merge_maps_kinematic.hpp +@@ -21,7 +21,9 @@ + + #include + #include ++#ifndef _WIN32 + #include ++#endif + #include + #include + #include +diff --git a/src/merge_maps_kinematic.cpp b/src/merge_maps_kinematic.cpp +index bd0ce0fa9..31b2a8991 100644 +--- a/src/merge_maps_kinematic.cpp ++++ b/src/merge_maps_kinematic.cpp +@@ -101,7 +101,11 @@ bool MergeMapsKinematic::addSubmapCallback( + "/map_" + std::to_string(num_submaps_), rclcpp::QoS(1))); + sstmS_.push_back(this->create_publisher( + "/map_metadata_" + std::to_string(num_submaps_), rclcpp::QoS(1))); ++#ifdef _WIN32 ++ Sleep(1000); ++#else + sleep(1.0); ++#endif + + nav_msgs::srv::GetMap::Response map; + nav_msgs::msg::OccupancyGrid & og = map.map; diff --git a/patch/ros-jazzy-smclib.win.patch b/patch/ros-jazzy-smclib.win.patch new file mode 100644 index 0000000..a970415 --- /dev/null +++ b/patch/ros-jazzy-smclib.win.patch @@ -0,0 +1,12 @@ +diff --git a/smclib/include/smclib/statemap.hpp b/smclib/include/smclib/statemap.hpp +index e338652..ee25d08 100644 +--- a/smclib/include/smclib/statemap.hpp ++++ b/smclib/include/smclib/statemap.hpp +@@ -52,7 +52,6 @@ + #endif // SMC_NO_EXCEPTIONS + #include + #elif defined(WIN32) +-#include + #if defined(SMC_NO_EXCEPTIONS) + #include + #endif // SMC_NO_EXCEPTIONS diff --git a/pixi.lock b/pixi.lock index 76e973f..a512fdd 100644 --- a/pixi.lock +++ b/pixi.lock @@ -88,7 +88,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/1c/e2/772f8cff8172a612823755035073b00753613c24af0ed6d3bae215021608/rospkg-1.5.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/68/6e/264c50ce2a31473a9fdbf4fa66ca9b2b17c7455b31ef585462343818bd6c/ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: git+https://github.com/RoboStack/vinca.git@35f09634dbd3c3697c8304a6287d3ba3e47517e1 + - pypi: git+https://github.com/RoboStack/vinca.git@8a559c7939b4034469c787b7ad57a448870169ce linux-aarch64: - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/_openmp_mutex-4.5-2_gnu.tar.bz2 - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda @@ -170,7 +170,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/1c/e2/772f8cff8172a612823755035073b00753613c24af0ed6d3bae215021608/rospkg-1.5.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3c/d2/b79b7d695e2f21da020bd44c782490578f300dd44f0a4c57a92575758a76/ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux2014_aarch64.whl - - pypi: git+https://github.com/RoboStack/vinca.git@35f09634dbd3c3697c8304a6287d3ba3e47517e1 + - pypi: git+https://github.com/RoboStack/vinca.git@8a559c7939b4034469c787b7ad57a448870169ce osx-64: - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-24.3.0-pyh71513ae_0.conda @@ -242,7 +242,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/1c/e2/772f8cff8172a612823755035073b00753613c24af0ed6d3bae215021608/rospkg-1.5.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/20/84/80203abff8ea4993a87d823a5f632e4d92831ef75d404c9fc78d0176d2b5/ruamel.yaml.clib-0.2.12.tar.gz - - pypi: git+https://github.com/RoboStack/vinca.git@35f09634dbd3c3697c8304a6287d3ba3e47517e1 + - pypi: git+https://github.com/RoboStack/vinca.git@8a559c7939b4034469c787b7ad57a448870169ce osx-arm64: - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-24.3.0-pyh71513ae_0.conda @@ -314,7 +314,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/1c/e2/772f8cff8172a612823755035073b00753613c24af0ed6d3bae215021608/rospkg-1.5.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fb/8f/683c6ad562f558cbc4f7c029abcd9599148c51c54b5ef0f24f2638da9fbb/ruamel.yaml.clib-0.2.12-cp311-cp311-macosx_13_0_arm64.whl - - pypi: git+https://github.com/RoboStack/vinca.git@35f09634dbd3c3697c8304a6287d3ba3e47517e1 + - pypi: git+https://github.com/RoboStack/vinca.git@8a559c7939b4034469c787b7ad57a448870169ce win-64: - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-24.3.0-pyh71513ae_0.conda @@ -394,7 +394,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/1c/e2/772f8cff8172a612823755035073b00753613c24af0ed6d3bae215021608/rospkg-1.5.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b4/4f/b52f634c9548a9291a70dfce26ca7ebce388235c93588a1068028ea23fcc/ruamel.yaml.clib-0.2.12-cp311-cp311-win_amd64.whl - - pypi: git+https://github.com/RoboStack/vinca.git@35f09634dbd3c3697c8304a6287d3ba3e47517e1 + - pypi: git+https://github.com/RoboStack/vinca.git@8a559c7939b4034469c787b7ad57a448870169ce default: channels: - url: https://repo.prefix.dev/conda-forge/ @@ -2804,9 +2804,9 @@ packages: purls: [] size: 754247 timestamp: 1731710681163 -- pypi: git+https://github.com/RoboStack/vinca.git@35f09634dbd3c3697c8304a6287d3ba3e47517e1 +- pypi: git+https://github.com/RoboStack/vinca.git@8a559c7939b4034469c787b7ad57a448870169ce name: vinca - version: 0.0.2 + version: 0.0.4 requires_dist: - catkin-pkg>=0.4.16 - ruamel-yaml>=0.16.6,<0.18.0 diff --git a/pixi.toml b/pixi.toml index d8a03e1..4d9bc08 100644 --- a/pixi.toml +++ b/pixi.toml @@ -26,19 +26,19 @@ m2-patch = "*" git = "*" [feature.beta.pypi-dependencies] -# This is tipically the latest commit on rattler-build-humble branch -vinca = { git ="https://github.com/RoboStack/vinca.git", rev = "35f09634dbd3c3697c8304a6287d3ba3e47517e1" } +# This is tipically the latest commit on main branch +vinca = { git ="https://github.com/RoboStack/vinca.git", rev = "8a559c7939b4034469c787b7ad57a448870169ce" } # Uncomment this line to work with a local vinca for faster iteration, but remember to comment it back # (and regenerate the pixi.lock) once you push the modified commit to the repo #vinca = { path = "../vinca", editable = true } [feature.beta.tasks] -generate-recipes = { cmd = "vinca -m", depends_on = ["rename-file"] } +generate-recipes = { cmd = "vinca -m --snapshot rosdistro_snapshot.yaml", depends_on = ["rename-file"] } remove-file = { cmd = "rm vinca.yaml; rm -rf recipes" } build_additional_recipes = { cmd = "rattler-build build --recipe-dir ./additional_recipes -m ./conda_build_config.yaml --skip-existing" } -build = { cmd = "rattler-build build --recipe-dir ./recipes -m ./conda_build_config.yaml -c robostack-staging -c https://repo.prefix.dev/conda-forge --skip-existing", depends_on = ["build_additional_recipes", "generate-recipes"] } -build_one_package = { cmd = "cp ./patch/$PACKAGE.*patch ./recipes/$PACKAGE/patch/; rattler-build build --recipe ./recipes/$PACKAGE/recipe.yaml -m ./conda_build_config.yaml -c robostack-staging -c https://repo.prefix.dev/conda-forge", env = { PACKAGE = "ros-jazzy-ros-workspace" } } -create_snapshot = { cmd = "vinca-snapshot -d jazzy -o snapshot_$(date +\"%Y-%m-%d-%H-%M-%S\").yaml" } +build = { cmd = "rattler-build build --recipe-dir ./recipes -m ./conda_build_config.yaml -c robostack-jazzy -c https://repo.prefix.dev/conda-forge --skip-existing", depends_on = ["build_additional_recipes", "generate-recipes"] } +build_one_package = { cmd = "cp ./patch/$PACKAGE.*patch ./recipes/$PACKAGE/patch/; rattler-build build --recipe ./recipes/$PACKAGE/recipe.yaml -m ./conda_build_config.yaml -c robostack-jazzy -c https://repo.prefix.dev/conda-forge", env = { PACKAGE = "ros-jazzy-ros-workspace" } } +create_snapshot = { cmd = "vinca-snapshot -d jazzy -o rosdistro_snapshot.yaml" } [environments] beta = ["beta"] diff --git a/pkg_additional_info.yaml b/pkg_additional_info.yaml new file mode 100644 index 0000000..bc5aae9 --- /dev/null +++ b/pkg_additional_info.yaml @@ -0,0 +1,6 @@ +angles: + build_number: 3 +ros_workspace: + build_number: 3 +rviz_common: + build_number: 3 diff --git a/snapshot_2025-01-10-12-50-56.yaml b/rosdistro_snapshot.yaml similarity index 99% rename from snapshot_2025-01-10-12-50-56.yaml rename to rosdistro_snapshot.yaml index 6790ee1..0084457 100644 --- a/snapshot_2025-01-10-12-50-56.yaml +++ b/rosdistro_snapshot.yaml @@ -1,3 +1,4 @@ +# Generated by vinca-snapshot on 2025-01-10-12-50-56 for distro jazzy acado_vendor: tag: release/jazzy/acado_vendor/1.0.0-7 url: https://github.com/ros2-gbp/acado_vendor-release.git diff --git a/tests/ros-jazzy-control-toolbox.yaml b/tests/ros-jazzy-control-toolbox.yaml new file mode 100644 index 0000000..7429a99 --- /dev/null +++ b/tests/ros-jazzy-control-toolbox.yaml @@ -0,0 +1,8 @@ +tests: + - script: + - cmake-package-check control_toolbox --targets control_toolbox::control_toolbox control_toolbox::rate_limiter control_toolbox::low_pass_filter + requirements: + run: + - cmake-package-check + - ${{ compiler('c') }} + - ${{ compiler('cxx') }} diff --git a/vinca_linux_64.yaml b/vinca_linux_64.yaml index 3e8749e..4f96d68 100644 --- a/vinca_linux_64.yaml +++ b/vinca_linux_64.yaml @@ -5,6 +5,7 @@ conda_index: - robostack.yaml - packages-ignore.yaml +# Reminder for next full rebuild, the next build number should be 4 build_number: 1 mutex_package: ros2-distro-mutex 0.6.* jazzy_* diff --git a/vinca_linux_aarch64.yaml b/vinca_linux_aarch64.yaml index 3e8749e..4f96d68 100644 --- a/vinca_linux_aarch64.yaml +++ b/vinca_linux_aarch64.yaml @@ -5,6 +5,7 @@ conda_index: - robostack.yaml - packages-ignore.yaml +# Reminder for next full rebuild, the next build number should be 4 build_number: 1 mutex_package: ros2-distro-mutex 0.6.* jazzy_* diff --git a/vinca_osx.yaml b/vinca_osx.yaml index 79814b6..bd988be 100644 --- a/vinca_osx.yaml +++ b/vinca_osx.yaml @@ -5,6 +5,7 @@ conda_index: - robostack.yaml - packages-ignore.yaml +# Reminder for next full rebuild, the next build number should be 4 build_number: 2 mutex_package: ros2-distro-mutex 0.6.* jazzy_* diff --git a/vinca_osx_arm64.yaml b/vinca_osx_arm64.yaml index b7d279e..e1a2a03 100644 --- a/vinca_osx_arm64.yaml +++ b/vinca_osx_arm64.yaml @@ -5,6 +5,7 @@ conda_index: - robostack.yaml - packages-ignore.yaml +# Reminder for next full rebuild, the next build number should be 4 build_number: 1 mutex_package: ros2-distro-mutex 0.6.* jazzy_* diff --git a/vinca_win.yaml b/vinca_win.yaml index 021d7bc..26fdcf9 100644 --- a/vinca_win.yaml +++ b/vinca_win.yaml @@ -5,6 +5,7 @@ conda_index: - robostack.yaml - packages-ignore.yaml +# Reminder for next full rebuild, the next build number should be 4 build_number: 1 mutex_package: ros2-distro-mutex 0.6.* jazzy_* @@ -20,19 +21,17 @@ packages_skip_by_deps: - urdfdom - urdfdom_py - urdfdom_headers - - pcl_conversions - - pendulum_control - rttest - tlsf - tlsf_cpp + - pendulum_control packages_remove_from_deps: - cartographer - - pcl_conversions - - pendulum_control - rttest - tlsf - tlsf_cpp + - pendulum_control skip_existing: # - output @@ -51,7 +50,7 @@ packages_select_by_deps: - teleop - robot - perception - # - navigation2 + - navigation2 - simulation - desktop_full @@ -62,14 +61,16 @@ packages_select_by_deps: - slam_toolbox - turtlebot3 - - plotjuggler-ros + # Skip for now + # - plotjuggler-ros - apriltag_ros - ackermann-msgs - velodyne - sbg_driver - - gtsam + # Commented out as in the next rebuild on Windows we will switch to use the conda-forge version + #- gtsam patch_dir: patch From 4d46f5d2be9e2c23432bd769ccc8af01c72e0e48 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Mon, 20 Jan 2025 23:18:36 +0100 Subject: [PATCH 4/8] Switch to load snapshot file via vinca.yaml file --- .github/workflows/main.yml | 10 +++++----- pixi.lock | 12 ++++++------ pixi.toml | 4 ++-- vinca_linux_64.yaml | 1 + vinca_linux_aarch64.yaml | 1 + vinca_osx.yaml | 1 + vinca_osx_arm64.yaml | 1 + vinca_win.yaml | 4 +++- 8 files changed, 20 insertions(+), 14 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index eb5a5c7..c177172 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -26,7 +26,7 @@ jobs: run: | git clean -fdx cp vinca_linux_64.yaml vinca.yaml - vinca --multiple --platform linux-64 --snapshot rosdistro_snapshot.yaml + vinca --multiple --platform linux-64 - name: Generate azure pipelines for linux-64 run: | vinca-gha --platform linux-64 --trigger-branch buildbranch_linux -d ./recipes --additional-recipes @@ -52,7 +52,7 @@ jobs: run: | git clean -fdx cp vinca_osx.yaml vinca.yaml - vinca --multiple --platform osx-64 --snapshot rosdistro_snapshot.yaml + vinca --multiple --platform osx-64 - name: Generate azure pipelines for osx-64 run: | vinca-gha --platform osx-64 --trigger-branch buildbranch_osx -d ./recipes --additional-recipes @@ -78,7 +78,7 @@ jobs: run: | git clean -fdx cp vinca_osx_arm64.yaml vinca.yaml - vinca --multiple --platform osx-arm64 --snapshot rosdistro_snapshot.yaml + vinca --multiple --platform osx-arm64 - name: Generate azure pipelines for osx-arm64 run: | vinca-gha --platform osx-arm64 --trigger-branch buildbranch_osx_arm64 -d ./recipes --additional-recipes @@ -104,7 +104,7 @@ jobs: run: | git clean -fdx cp vinca_win.yaml vinca.yaml - vinca --multiple --platform win-64 --snapshot rosdistro_snapshot.yaml + vinca --multiple --platform win-64 - name: Generate azure pipelines for win-64 run: | vinca-gha --platform win-64 --trigger-branch buildbranch_win -d ./recipes --additional-recipes @@ -130,7 +130,7 @@ jobs: run: | git clean -fdx cp vinca_linux_aarch64.yaml vinca.yaml - vinca --multiple --platform linux-aarch64 --snapshot rosdistro_snapshot.yaml + vinca --multiple --platform linux-aarch64 - name: Generate azure pipelines for linux-aarch64 run: | vinca-gha --platform linux-aarch64 --trigger-branch buildbranch_linux_aarch64 -d ./recipes --additional-recipes diff --git a/pixi.lock b/pixi.lock index a512fdd..03a9220 100644 --- a/pixi.lock +++ b/pixi.lock @@ -88,7 +88,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/1c/e2/772f8cff8172a612823755035073b00753613c24af0ed6d3bae215021608/rospkg-1.5.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/68/6e/264c50ce2a31473a9fdbf4fa66ca9b2b17c7455b31ef585462343818bd6c/ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: git+https://github.com/RoboStack/vinca.git@8a559c7939b4034469c787b7ad57a448870169ce + - pypi: git+https://github.com/RoboStack/vinca.git@a081fad2b1d72cfa4c3cc30010dae024ade79d0c linux-aarch64: - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/_openmp_mutex-4.5-2_gnu.tar.bz2 - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda @@ -170,7 +170,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/1c/e2/772f8cff8172a612823755035073b00753613c24af0ed6d3bae215021608/rospkg-1.5.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3c/d2/b79b7d695e2f21da020bd44c782490578f300dd44f0a4c57a92575758a76/ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux2014_aarch64.whl - - pypi: git+https://github.com/RoboStack/vinca.git@8a559c7939b4034469c787b7ad57a448870169ce + - pypi: git+https://github.com/RoboStack/vinca.git@a081fad2b1d72cfa4c3cc30010dae024ade79d0c osx-64: - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-24.3.0-pyh71513ae_0.conda @@ -242,7 +242,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/1c/e2/772f8cff8172a612823755035073b00753613c24af0ed6d3bae215021608/rospkg-1.5.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/20/84/80203abff8ea4993a87d823a5f632e4d92831ef75d404c9fc78d0176d2b5/ruamel.yaml.clib-0.2.12.tar.gz - - pypi: git+https://github.com/RoboStack/vinca.git@8a559c7939b4034469c787b7ad57a448870169ce + - pypi: git+https://github.com/RoboStack/vinca.git@a081fad2b1d72cfa4c3cc30010dae024ade79d0c osx-arm64: - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-24.3.0-pyh71513ae_0.conda @@ -314,7 +314,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/1c/e2/772f8cff8172a612823755035073b00753613c24af0ed6d3bae215021608/rospkg-1.5.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fb/8f/683c6ad562f558cbc4f7c029abcd9599148c51c54b5ef0f24f2638da9fbb/ruamel.yaml.clib-0.2.12-cp311-cp311-macosx_13_0_arm64.whl - - pypi: git+https://github.com/RoboStack/vinca.git@8a559c7939b4034469c787b7ad57a448870169ce + - pypi: git+https://github.com/RoboStack/vinca.git@a081fad2b1d72cfa4c3cc30010dae024ade79d0c win-64: - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-24.3.0-pyh71513ae_0.conda @@ -394,7 +394,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/1c/e2/772f8cff8172a612823755035073b00753613c24af0ed6d3bae215021608/rospkg-1.5.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b4/4f/b52f634c9548a9291a70dfce26ca7ebce388235c93588a1068028ea23fcc/ruamel.yaml.clib-0.2.12-cp311-cp311-win_amd64.whl - - pypi: git+https://github.com/RoboStack/vinca.git@8a559c7939b4034469c787b7ad57a448870169ce + - pypi: git+https://github.com/RoboStack/vinca.git@a081fad2b1d72cfa4c3cc30010dae024ade79d0c default: channels: - url: https://repo.prefix.dev/conda-forge/ @@ -2804,7 +2804,7 @@ packages: purls: [] size: 754247 timestamp: 1731710681163 -- pypi: git+https://github.com/RoboStack/vinca.git@8a559c7939b4034469c787b7ad57a448870169ce +- pypi: git+https://github.com/RoboStack/vinca.git@a081fad2b1d72cfa4c3cc30010dae024ade79d0c name: vinca version: 0.0.4 requires_dist: diff --git a/pixi.toml b/pixi.toml index 4d9bc08..df6636e 100644 --- a/pixi.toml +++ b/pixi.toml @@ -27,13 +27,13 @@ git = "*" [feature.beta.pypi-dependencies] # This is tipically the latest commit on main branch -vinca = { git ="https://github.com/RoboStack/vinca.git", rev = "8a559c7939b4034469c787b7ad57a448870169ce" } +vinca = { git ="https://github.com/RoboStack/vinca.git", rev = "a081fad2b1d72cfa4c3cc30010dae024ade79d0c" } # Uncomment this line to work with a local vinca for faster iteration, but remember to comment it back # (and regenerate the pixi.lock) once you push the modified commit to the repo #vinca = { path = "../vinca", editable = true } [feature.beta.tasks] -generate-recipes = { cmd = "vinca -m --snapshot rosdistro_snapshot.yaml", depends_on = ["rename-file"] } +generate-recipes = { cmd = "vinca -m", depends_on = ["rename-file"] } remove-file = { cmd = "rm vinca.yaml; rm -rf recipes" } build_additional_recipes = { cmd = "rattler-build build --recipe-dir ./additional_recipes -m ./conda_build_config.yaml --skip-existing" } build = { cmd = "rattler-build build --recipe-dir ./recipes -m ./conda_build_config.yaml -c robostack-jazzy -c https://repo.prefix.dev/conda-forge --skip-existing", depends_on = ["build_additional_recipes", "generate-recipes"] } diff --git a/vinca_linux_64.yaml b/vinca_linux_64.yaml index 4f96d68..1608421 100644 --- a/vinca_linux_64.yaml +++ b/vinca_linux_64.yaml @@ -63,3 +63,4 @@ packages_select_by_deps: - gtsam patch_dir: patch +rosdistro_snapshot: rosdistro_snapshot.yaml diff --git a/vinca_linux_aarch64.yaml b/vinca_linux_aarch64.yaml index 4f96d68..1608421 100644 --- a/vinca_linux_aarch64.yaml +++ b/vinca_linux_aarch64.yaml @@ -63,3 +63,4 @@ packages_select_by_deps: - gtsam patch_dir: patch +rosdistro_snapshot: rosdistro_snapshot.yaml diff --git a/vinca_osx.yaml b/vinca_osx.yaml index bd988be..f8b0bbf 100644 --- a/vinca_osx.yaml +++ b/vinca_osx.yaml @@ -73,3 +73,4 @@ packages_select_by_deps: - gtsam patch_dir: patch +rosdistro_snapshot: rosdistro_snapshot.yaml diff --git a/vinca_osx_arm64.yaml b/vinca_osx_arm64.yaml index e1a2a03..ffd0d8d 100644 --- a/vinca_osx_arm64.yaml +++ b/vinca_osx_arm64.yaml @@ -73,3 +73,4 @@ packages_select_by_deps: - gtsam patch_dir: patch +rosdistro_snapshot: rosdistro_snapshot.yaml diff --git a/vinca_win.yaml b/vinca_win.yaml index 26fdcf9..131f435 100644 --- a/vinca_win.yaml +++ b/vinca_win.yaml @@ -67,10 +67,12 @@ packages_select_by_deps: - apriltag_ros - ackermann-msgs - - velodyne + # velodyne packages are not supported on Windows + # - velodyne - sbg_driver # Commented out as in the next rebuild on Windows we will switch to use the conda-forge version #- gtsam patch_dir: patch +rosdistro_snapshot: rosdistro_snapshot.yaml From 12f9cf923e5731180737f182ecbe31d15c502116 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Mon, 20 Jan 2025 23:21:17 +0100 Subject: [PATCH 5/8] Switch testpr linux-aarch64 to use public ubuntu-24.04-arm machines instead of cirun --- .github/workflows/testpr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/testpr.yml b/.github/workflows/testpr.yml index 0c3fa38..b5df46c 100644 --- a/.github/workflows/testpr.yml +++ b/.github/workflows/testpr.yml @@ -14,7 +14,7 @@ jobs: include: - os: ubuntu-latest platform: linux-64 - - os: cirun-linux-aarch64--${{ github.run_id }} + - os: ubuntu-24.04-arm platform: linux-aarch64 - os: macos-13 platform: osx-64 From 08100789951b4b88fcd81085fcfc6911798e27a5 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Mon, 20 Jan 2025 23:24:19 +0100 Subject: [PATCH 6/8] Align pugixml with existing builds --- conda_build_config.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/conda_build_config.yaml b/conda_build_config.yaml index cdb780d..a1870e4 100644 --- a/conda_build_config.yaml +++ b/conda_build_config.yaml @@ -6,6 +6,8 @@ protobuf: - 5.28.2 spdlog: - 1.14 +pugixml: + - '1.14' cdt_name: - ${{ "cos7" if linux }} From a703d718632d6e49276ec604a7ecf03e0e4315bc Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Tue, 21 Jan 2025 09:38:48 +0100 Subject: [PATCH 7/8] Update for latest version of rattler-build --- conda_build_config.yaml | 40 +++++++++++------- pixi.lock | 93 +++++++++++++++++++---------------------- pixi.toml | 4 +- 3 files changed, 70 insertions(+), 67 deletions(-) diff --git a/conda_build_config.yaml b/conda_build_config.yaml index a1870e4..02b9426 100644 --- a/conda_build_config.yaml +++ b/conda_build_config.yaml @@ -9,27 +9,35 @@ spdlog: pugixml: - '1.14' -cdt_name: - - ${{ "cos7" if linux }} +cdt_name: # [linux] + - conda # [linux] python: - 3.11.* *_cpython python_impl: - cpython -c_stdlib: - - ${{ "sysroot" if linux }} - - ${{ "macosx_deployment_target" if osx }} - - ${{ "vs" if win }} -c_stdlib_version: - - ${{ "2.17" if linux }} - - ${{ "10.14" if osx and x86_64 }} - - ${{ "11.0" if osx and arm64 }} c_compiler: - - ${{ "gcc" if linux }} - - ${{ "clang" if osx }} - - ${{ "vs2019" if win }} + - gcc # [linux] + - clang # [osx] + - vs2019 # [win and x86_64] + - vs2022 # [win and arm64] +c_compiler_version: # [unix] + - 13 # [linux] + - 18 # [osx] +c_stdlib: + - sysroot # [linux] + - macosx_deployment_target # [osx] + - vs # [win] +c_stdlib_version: # [unix] + - 2.17 # [linux] + - 10.13 # [osx and x86_64] + - 11.0 # [osx and arm64] cxx_compiler: - - ${{ "gxx" if linux }} - - ${{ "clangxx" if osx }} - - ${{ "vs2019" if win }} + - gxx # [linux] + - clangxx # [osx] + - vs2019 # [win and x86_64] + - vs2022 # [win and arm64] +cxx_compiler_version: # [unix] + - 13 # [linux] + - 18 # [osx] diff --git a/pixi.lock b/pixi.lock index 03a9220..ccc7f2e 100644 --- a/pixi.lock +++ b/pixi.lock @@ -57,7 +57,7 @@ environments: - conda: https://repo.prefix.dev/conda-forge/linux-64/python_abi-3.11-5_cp311.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/pyyaml-6.0.2-py311h9ecbd09_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/rattler-build-0.34.0-hbcf9e9b_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/rattler-build-0.35.6-hff40e2b_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/readline-8.2-h8228510_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda @@ -88,7 +88,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/1c/e2/772f8cff8172a612823755035073b00753613c24af0ed6d3bae215021608/rospkg-1.5.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/68/6e/264c50ce2a31473a9fdbf4fa66ca9b2b17c7455b31ef585462343818bd6c/ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: git+https://github.com/RoboStack/vinca.git@a081fad2b1d72cfa4c3cc30010dae024ade79d0c + - pypi: git+https://github.com/RoboStack/vinca.git@cbb8eba834ce3834df552977d6b08c325a30768e linux-aarch64: - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/_openmp_mutex-4.5-2_gnu.tar.bz2 - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda @@ -139,7 +139,7 @@ environments: - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/python_abi-3.11-5_cp311.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/pyyaml-6.0.2-py311ha879c10_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/rattler-build-0.34.0-h33857bb_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/rattler-build-0.35.6-h33857bb_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/readline-8.2-h8fc344f_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda @@ -170,7 +170,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/1c/e2/772f8cff8172a612823755035073b00753613c24af0ed6d3bae215021608/rospkg-1.5.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3c/d2/b79b7d695e2f21da020bd44c782490578f300dd44f0a4c57a92575758a76/ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux2014_aarch64.whl - - pypi: git+https://github.com/RoboStack/vinca.git@a081fad2b1d72cfa4c3cc30010dae024ade79d0c + - pypi: git+https://github.com/RoboStack/vinca.git@cbb8eba834ce3834df552977d6b08c325a30768e osx-64: - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-24.3.0-pyh71513ae_0.conda @@ -211,7 +211,7 @@ environments: - conda: https://repo.prefix.dev/conda-forge/osx-64/python_abi-3.11-5_cp311.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/osx-64/pyyaml-6.0.2-py311h3336109_1.conda - - conda: https://repo.prefix.dev/conda-forge/osx-64/rattler-build-0.34.0-h113f492_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/rattler-build-0.35.6-h625f1b7_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda @@ -242,7 +242,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/1c/e2/772f8cff8172a612823755035073b00753613c24af0ed6d3bae215021608/rospkg-1.5.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/20/84/80203abff8ea4993a87d823a5f632e4d92831ef75d404c9fc78d0176d2b5/ruamel.yaml.clib-0.2.12.tar.gz - - pypi: git+https://github.com/RoboStack/vinca.git@a081fad2b1d72cfa4c3cc30010dae024ade79d0c + - pypi: git+https://github.com/RoboStack/vinca.git@cbb8eba834ce3834df552977d6b08c325a30768e osx-arm64: - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-24.3.0-pyh71513ae_0.conda @@ -283,7 +283,7 @@ environments: - conda: https://repo.prefix.dev/conda-forge/osx-arm64/python_abi-3.11-5_cp311.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/osx-arm64/pyyaml-6.0.2-py311h460d6c5_1.conda - - conda: https://repo.prefix.dev/conda-forge/osx-arm64/rattler-build-0.34.0-h760a855_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/rattler-build-0.35.6-h3ab7716_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda @@ -314,7 +314,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/1c/e2/772f8cff8172a612823755035073b00753613c24af0ed6d3bae215021608/rospkg-1.5.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fb/8f/683c6ad562f558cbc4f7c029abcd9599148c51c54b5ef0f24f2638da9fbb/ruamel.yaml.clib-0.2.12-cp311-cp311-macosx_13_0_arm64.whl - - pypi: git+https://github.com/RoboStack/vinca.git@a081fad2b1d72cfa4c3cc30010dae024ade79d0c + - pypi: git+https://github.com/RoboStack/vinca.git@cbb8eba834ce3834df552977d6b08c325a30768e win-64: - conda: https://repo.prefix.dev/conda-forge/noarch/anaconda-client-1.12.3-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/attrs-24.3.0-pyh71513ae_0.conda @@ -359,7 +359,7 @@ environments: - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/win-64/pywin32-307-py311hda3d55a_3.conda - conda: https://repo.prefix.dev/conda-forge/win-64/pyyaml-6.0.2-py311he736701_1.conda - - conda: https://repo.prefix.dev/conda-forge/win-64/rattler-build-0.34.0-ha8cf89e_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/rattler-build-0.35.6-ha8cf89e_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda @@ -394,7 +394,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/1c/e2/772f8cff8172a612823755035073b00753613c24af0ed6d3bae215021608/rospkg-1.5.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/35/79/5e2cffa1c77432f11cd93a5351f30732c997a239d3a3090856a72d6d8ba7/ruamel.yaml-0.17.40-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b4/4f/b52f634c9548a9291a70dfce26ca7ebce388235c93588a1068028ea23fcc/ruamel.yaml.clib-0.2.12-cp311-cp311-win_amd64.whl - - pypi: git+https://github.com/RoboStack/vinca.git@a081fad2b1d72cfa4c3cc30010dae024ade79d0c + - pypi: git+https://github.com/RoboStack/vinca.git@cbb8eba834ce3834df552977d6b08c325a30768e default: channels: - url: https://repo.prefix.dev/conda-forge/ @@ -450,7 +450,7 @@ environments: - conda: https://repo.prefix.dev/conda-forge/linux-64/python_abi-3.11-5_cp311.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/pyyaml-6.0.2-py311h9ecbd09_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-64/rattler-build-0.34.0-hbcf9e9b_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-64/rattler-build-0.35.6-hff40e2b_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-64/readline-8.2-h8228510_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda @@ -517,7 +517,7 @@ environments: - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/python_abi-3.11-5_cp311.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/pyyaml-6.0.2-py311ha879c10_1.conda - - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/rattler-build-0.34.0-h33857bb_0.conda + - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/rattler-build-0.35.6-h33857bb_0.conda - conda: https://repo.prefix.dev/conda-forge/linux-aarch64/readline-8.2-h8fc344f_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda @@ -574,7 +574,7 @@ environments: - conda: https://repo.prefix.dev/conda-forge/osx-64/python_abi-3.11-5_cp311.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/osx-64/pyyaml-6.0.2-py311h3336109_1.conda - - conda: https://repo.prefix.dev/conda-forge/osx-64/rattler-build-0.34.0-h113f492_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-64/rattler-build-0.35.6-h625f1b7_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda @@ -631,7 +631,7 @@ environments: - conda: https://repo.prefix.dev/conda-forge/osx-arm64/python_abi-3.11-5_cp311.conda - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/osx-arm64/pyyaml-6.0.2-py311h460d6c5_1.conda - - conda: https://repo.prefix.dev/conda-forge/osx-arm64/rattler-build-0.34.0-h760a855_0.conda + - conda: https://repo.prefix.dev/conda-forge/osx-arm64/rattler-build-0.35.6-h3ab7716_0.conda - conda: https://repo.prefix.dev/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda @@ -692,7 +692,7 @@ environments: - conda: https://repo.prefix.dev/conda-forge/noarch/pytz-2024.2-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/win-64/pywin32-307-py311hda3d55a_3.conda - conda: https://repo.prefix.dev/conda-forge/win-64/pyyaml-6.0.2-py311he736701_1.conda - - conda: https://repo.prefix.dev/conda-forge/win-64/rattler-build-0.34.0-ha8cf89e_0.conda + - conda: https://repo.prefix.dev/conda-forge/win-64/rattler-build-0.35.6-ha8cf89e_0.conda - conda: https://repo.prefix.dev/conda-forge/noarch/referencing-0.35.1-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda - conda: https://repo.prefix.dev/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda @@ -2361,69 +2361,64 @@ packages: - pkg:pypi/pyyaml?source=hash-mapping size: 187901 timestamp: 1725456808581 -- conda: https://repo.prefix.dev/conda-forge/linux-64/rattler-build-0.34.0-hbcf9e9b_0.conda - sha256: 3044a7ce89f39637b86cf8402a116dda290c053708bc36db387148fe5e7727bd - md5: 2f4dc06884a58913cfb4110c0aa3b667 +- conda: https://repo.prefix.dev/conda-forge/linux-64/rattler-build-0.35.6-hff40e2b_0.conda + sha256: 0c8c82fd3cf13e69f5c600767b7ba60db38c4cdea0cbad66fdb624ada52a7f27 + md5: c926bc2b91cdb32687e9a9f5909a4aa9 depends: + - patchelf - __glibc >=2.17,<3.0.a0 - openssl >=3.4.0,<4.0a0 - - patchelf constrains: - __glibc >=2.17 license: BSD-3-Clause - license_family: BSD purls: [] - size: 9454415 - timestamp: 1736419277496 -- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/rattler-build-0.34.0-h33857bb_0.conda - sha256: f920b8f8fba8d9be5d55fe7a672cad3d7860f8167c06c6603b0e27c6c71eb921 - md5: a362b5a74cd28234caab28aa273b3fbc + size: 10747673 + timestamp: 1737419180461 +- conda: https://repo.prefix.dev/conda-forge/linux-aarch64/rattler-build-0.35.6-h33857bb_0.conda + sha256: 3ab4069c59ad3cd749258ab29e03072f8c1bc719428bc742046c5e2deaf41af5 + md5: 58aacf133b01307e660f5521b9dd6e53 depends: - - openssl >=3.4.0,<4.0a0 - patchelf + - openssl >=3.4.0,<4.0a0 constrains: - __glibc >=2.17 license: BSD-3-Clause - license_family: BSD purls: [] - size: 9465225 - timestamp: 1736419194956 -- conda: https://repo.prefix.dev/conda-forge/osx-64/rattler-build-0.34.0-h113f492_0.conda - sha256: 2e662fc1c41189e8dab65e9fbef68432942d28e62e87d0f98197b1b48439eb3e - md5: 212c5c450dfe7024740af6b6c7987d16 + size: 11002462 + timestamp: 1737419203421 +- conda: https://repo.prefix.dev/conda-forge/osx-64/rattler-build-0.35.6-h625f1b7_0.conda + sha256: 5bc1d0180f986da4cf0282b5848afc70c5587242571871a5f0f915b3c7377ecc + md5: 1ac44d901cbc43e92eb26a5ae66f98e3 depends: - __osx >=10.13 constrains: - __osx >=10.13 license: BSD-3-Clause - license_family: BSD purls: [] - size: 7847576 - timestamp: 1736419781079 -- conda: https://repo.prefix.dev/conda-forge/osx-arm64/rattler-build-0.34.0-h760a855_0.conda - sha256: 5b88c3e20a5840eaa3d9978a3d5bdaa6af5a900ba5d55b6cc52b7c94c09fbb24 - md5: 6826ba257806c1e1c386453e4ca1dba2 + size: 9263112 + timestamp: 1737419217243 +- conda: https://repo.prefix.dev/conda-forge/osx-arm64/rattler-build-0.35.6-h3ab7716_0.conda + sha256: 9247021b374a0744ec26fc5130e75def2ddbe88212a804df72c1b256cc9c9393 + md5: 2c1ad2d4c0bfcc7e83c49e4aff1ecc14 depends: - __osx >=11.0 constrains: - __osx >=11.0 license: BSD-3-Clause - license_family: BSD purls: [] - size: 7518497 - timestamp: 1736419743037 -- conda: https://repo.prefix.dev/conda-forge/win-64/rattler-build-0.34.0-ha8cf89e_0.conda - sha256: 9d65c48e6f6b9cc19617063a04143ca562d84ea7e03eaee06fa4f600607225b9 - md5: 0b1bccac166863afbc50efbd51b94b15 + size: 8654822 + timestamp: 1737419214645 +- conda: https://repo.prefix.dev/conda-forge/win-64/rattler-build-0.35.6-ha8cf89e_0.conda + sha256: aaa21fe06d851d9a2c9ecccba4b5790ae79c01c5be9378c9a81f162be69d1bad + md5: 3ae382d651e20263ae9dc1dd32f69841 depends: - - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.42.34433 + - ucrt >=10.0.20348.0 license: BSD-3-Clause - license_family: BSD purls: [] - size: 7180840 - timestamp: 1736420263616 + size: 8615244 + timestamp: 1737419207280 - conda: https://repo.prefix.dev/conda-forge/linux-64/readline-8.2-h8228510_1.conda sha256: 5435cf39d039387fbdc977b0a762357ea909a7694d9528ab40f005e9208744d7 md5: 47d31b792659ce70f470b5c82fdfb7a4 @@ -2804,7 +2799,7 @@ packages: purls: [] size: 754247 timestamp: 1731710681163 -- pypi: git+https://github.com/RoboStack/vinca.git@a081fad2b1d72cfa4c3cc30010dae024ade79d0c +- pypi: git+https://github.com/RoboStack/vinca.git@cbb8eba834ce3834df552977d6b08c325a30768e name: vinca version: 0.0.4 requires_dist: diff --git a/pixi.toml b/pixi.toml index df6636e..6ce4ae1 100644 --- a/pixi.toml +++ b/pixi.toml @@ -16,7 +16,7 @@ upload = "anaconda -t $ANACONDA_API_TOKEN upload" [dependencies] python = ">=3.11.0,<3.12" -rattler-build = ">=0.33.2" +rattler-build = ">=0.35.5" anaconda-client = ">=1.12" [target.win-64.dependencies] @@ -27,7 +27,7 @@ git = "*" [feature.beta.pypi-dependencies] # This is tipically the latest commit on main branch -vinca = { git ="https://github.com/RoboStack/vinca.git", rev = "a081fad2b1d72cfa4c3cc30010dae024ade79d0c" } +vinca = { git ="https://github.com/RoboStack/vinca.git", rev = "cbb8eba834ce3834df552977d6b08c325a30768e" } # Uncomment this line to work with a local vinca for faster iteration, but remember to comment it back # (and regenerate the pixi.lock) once you push the modified commit to the repo #vinca = { path = "../vinca", editable = true } From b8724268cdbaebbdd00d3740eeabcef010c12038 Mon Sep 17 00:00:00 2001 From: Tobias Fischer Date: Wed, 22 Jan 2025 07:41:23 +1000 Subject: [PATCH 8/8] Cleanup old aarch stuff --- .github/workflows/testpr.yml | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/.github/workflows/testpr.yml b/.github/workflows/testpr.yml index b5df46c..302538f 100644 --- a/.github/workflows/testpr.yml +++ b/.github/workflows/testpr.yml @@ -45,22 +45,6 @@ jobs: # git in C:\Program Files\Git\bin is used by pip install git+ dirs: 'C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program Files\Git\mingw64\bin' - # - shell: bash -l {0} - # if: matrix.platform == 'linux-aarch64' - # run: | - # echo "::group::Configure binfmt_misc" - # docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes - # export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)" - # export GIT_BRANCH="$(basename $GITHUB_REF)" - # echo "::endgroup::" - - # - name: Install libgl1-mesa-dev (only for linux-aarch64) - # if: matrix.platform == 'linux-aarch64' - # shell: bash -l {0} - # run: | - # sudo apt-get update - # sudo apt-get install -y libgl1-mesa-dev libglu1-mesa-dev libx11-dev libxi-dev libxmu-dev - # For some reason, the Strawberry perl's pkg-config is found # instead of the conda's one, so let's delete the /c/Strawberry directory # Furthermore, we also need to remove an older SDK that is used and can result in compilation problems