diff --git a/.github/workflows/rolling-semi-binary-build-win.yml b/.github/workflows/rolling-semi-binary-build-win.yml new file mode 100644 index 0000000000..a7c1510dde --- /dev/null +++ b/.github/workflows/rolling-semi-binary-build-win.yml @@ -0,0 +1,50 @@ +name: Rolling Windows Semi-Binary Build +# author: Christoph Fröhlich +# description: 'Build & test all dependencies from semi-binary packages.' + +on: + workflow_dispatch: + pull_request: + branches: + - master + paths: + - '**.hpp' + - '**.h' + - '**.cpp' + - '**.py' + - '.github/workflows/rolling-semi-binary-build-win.yml' + - '**/package.xml' + - '**/CMakeLists.txt' + - 'ros2_control.rolling.repos' + - 'ros2_control.windows.rolling.repos' + push: + branches: + - master + paths: + - '**.hpp' + - '**.h' + - '**.cpp' + - '**.py' + - '.github/workflows/rolling-semi-binary-build-win.yml' + - '**/package.xml' + - '**/CMakeLists.txt' + - 'ros2_control.rolling.repos' + - 'ros2_control.windows.rolling.repos' + +concurrency: + # cancel previous runs of the same workflow, except for pushes on master branch + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ !startsWith(github.ref, '/refs/heads') }} + +jobs: + binary-windows: + # if: | + # (github.event_name == 'issue_comment' && contains(github.event.comment.body, '/check-windows')) || + # (github.event_name == 'pull_request' && contains(github.event.label.name, 'check-windows')) || + # (github.event_name == 'workflow_dispatch') + uses: ros-controls/ros2_control_ci/.github/workflows/reusable-ros-tooling-win-build.yml@master + with: + ros_distro: rolling + pixi_dependencies: typeguard jinja2 boost compilers + windows_dependencies: ros2_control.windows.rolling.repos + ninja_packages: rsl diff --git a/hardware_interface/include/hardware_interface/handle.hpp b/hardware_interface/include/hardware_interface/handle.hpp index 6fbb547e6a..baaf5d449b 100644 --- a/hardware_interface/include/hardware_interface/handle.hpp +++ b/hardware_interface/include/hardware_interface/handle.hpp @@ -36,6 +36,7 @@ namespace { +#ifndef _WIN32 template std::string get_type_name() { @@ -44,6 +45,14 @@ std::string get_type_name() abi::__cxa_demangle(typeid(T).name(), nullptr, nullptr, &status), std::free}; return (status == 0) ? res.get() : typeid(T).name(); } +#else +// not supported on Windows, use typeid directly +template +std::string get_type_name() +{ + return typeid(T).name(); +} +#endif } // namespace namespace hardware_interface diff --git a/ros2_control.windows.rolling.repos b/ros2_control.windows.rolling.repos new file mode 100644 index 0000000000..82dcc34f08 --- /dev/null +++ b/ros2_control.windows.rolling.repos @@ -0,0 +1,29 @@ +repositories: + filters: + type: git + url: https://github.com/ros/filters.git + version: ros2 + cpp_polyfills: + type: git + url: https://github.com/PickNikRobotics/cpp_polyfills.git + version: main + rsl: + type: git + url: https://github.com/PickNikRobotics/RSL.git + version: main + generate_parameter_library: + type: git + url: https://github.com/PickNikRobotics/generate_parameter_library.git + version: main + pal_statistics: + type: git + url: https://github.com/pal-robotics/pal_statistics.git + version: humble-devel + backward_ros: + type: git + url: https://github.com/pal-robotics//backward_ros.git + version: foxy-devel + diagnostics: + type: git + url: https://github.com/ros/diagnostics + version: ros2