From 173a67f44435656105a53257e6793f53bc5653b5 Mon Sep 17 00:00:00 2001 From: Christoph Froehlich Date: Sun, 24 Nov 2024 18:51:33 +0000 Subject: [PATCH 01/11] Add windows workflow --- .github/workflows/binary-build-win.yml | 29 ++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .github/workflows/binary-build-win.yml diff --git a/.github/workflows/binary-build-win.yml b/.github/workflows/binary-build-win.yml new file mode 100644 index 00000000..ec7621f7 --- /dev/null +++ b/.github/workflows/binary-build-win.yml @@ -0,0 +1,29 @@ +name: Windows Binary Build +# author: Christoph Fröhlich +# description: 'Build & test all dependencies from released (binary) windows packages.' + +on: + workflow_dispatch: + pull_request: + branches: + - ros2-master + # types: + # - labeled + push: + branches: + - ros2-master + # issue_comment: + # types: + # - created + +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@windows_ci + with: + ros_distro: jazzy + ref: ros2-master + os_name: windows-2019 From e75f7d51c409682f2fdf139a5decd709921f0028 Mon Sep 17 00:00:00 2001 From: Christoph Froehlich Date: Mon, 25 Nov 2024 08:33:09 +0000 Subject: [PATCH 02/11] Update new inputs --- .github/workflows/binary-build-win.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/binary-build-win.yml b/.github/workflows/binary-build-win.yml index ec7621f7..32041858 100644 --- a/.github/workflows/binary-build-win.yml +++ b/.github/workflows/binary-build-win.yml @@ -25,5 +25,5 @@ jobs: uses: ros-controls/ros2_control_ci/.github/workflows/reusable-ros-tooling-win-build.yml@windows_ci with: ros_distro: jazzy - ref: ros2-master + ref_for_scheduled_build: ros2-master os_name: windows-2019 From 4b2766b53a458977a39e39de1f6da638adabcbcf Mon Sep 17 00:00:00 2001 From: Christoph Froehlich Date: Mon, 25 Nov 2024 08:33:39 +0000 Subject: [PATCH 03/11] Temporarily use fixed upstream repo --- control_toolbox.jazzy.repos | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control_toolbox.jazzy.repos b/control_toolbox.jazzy.repos index f8ef4ecb..6ddd3e0e 100644 --- a/control_toolbox.jazzy.repos +++ b/control_toolbox.jazzy.repos @@ -6,4 +6,4 @@ repositories: realtime_tools: type: git url: https://github.com/ros-controls/realtime_tools - version: master + version: windows_ci From 9d05039980ab8b226939902e6af5d489709a3e25 Mon Sep 17 00:00:00 2001 From: Christoph Froehlich Date: Mon, 25 Nov 2024 08:46:44 +0000 Subject: [PATCH 04/11] Compile ros/filters from source --- control_toolbox.jazzy.repos | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/control_toolbox.jazzy.repos b/control_toolbox.jazzy.repos index 6ddd3e0e..323ae213 100644 --- a/control_toolbox.jazzy.repos +++ b/control_toolbox.jazzy.repos @@ -7,3 +7,7 @@ repositories: type: git url: https://github.com/ros-controls/realtime_tools version: windows_ci + filters: + type: git + url: https://github.com/ros/filters.git + version: ros2 From e6d45df910dfdce5918b3036f3c17fb0e316647e Mon Sep 17 00:00:00 2001 From: Christoph Froehlich Date: Mon, 25 Nov 2024 10:19:53 +0000 Subject: [PATCH 05/11] Try to install boost --- .github/workflows/binary-build-win.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/binary-build-win.yml b/.github/workflows/binary-build-win.yml index 32041858..fd38b14f 100644 --- a/.github/workflows/binary-build-win.yml +++ b/.github/workflows/binary-build-win.yml @@ -22,7 +22,7 @@ jobs: # (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@windows_ci + uses: ros-controls/ros2_control_ci/.github/workflows/reusable-ros-tooling-win-build.yml@windows_ci_boost with: ros_distro: jazzy ref_for_scheduled_build: ros2-master From 8f88ccaf692c61dfe55c4c6b421c4c8533cf2125 Mon Sep 17 00:00:00 2001 From: Christoph Froehlich Date: Mon, 25 Nov 2024 12:50:12 +0000 Subject: [PATCH 06/11] Try own filters fork --- control_toolbox.jazzy.repos | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/control_toolbox.jazzy.repos b/control_toolbox.jazzy.repos index 323ae213..5665b966 100644 --- a/control_toolbox.jazzy.repos +++ b/control_toolbox.jazzy.repos @@ -9,5 +9,5 @@ repositories: version: windows_ci filters: type: git - url: https://github.com/ros/filters.git - version: ros2 + url: https://github.com/christophfroehlich/filters.git + version: ros2-boost From 3b39b87c34380a0f396c1c4538d8ec349f40a1ff Mon Sep 17 00:00:00 2001 From: Christoph Froehlich Date: Mon, 25 Nov 2024 20:11:09 +0000 Subject: [PATCH 07/11] Export symbols on windows --- CMakeLists.txt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4f144e88..c8783247 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 From 7ac30386804aaf2956aae9f3e38aa51f21e7a09f Mon Sep 17 00:00:00 2001 From: Christoph Froehlich Date: Mon, 25 Nov 2024 20:25:16 +0000 Subject: [PATCH 08/11] Explicitly install boost --- .github/workflows/binary-build-win.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/binary-build-win.yml b/.github/workflows/binary-build-win.yml index fd38b14f..100950e3 100644 --- a/.github/workflows/binary-build-win.yml +++ b/.github/workflows/binary-build-win.yml @@ -27,3 +27,4 @@ jobs: ros_distro: jazzy ref_for_scheduled_build: ros2-master os_name: windows-2019 + install_boost: true From 315c0ee5dfb4116465a5de118966e31c8697fc9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoph=20Fr=C3=B6hlich?= Date: Mon, 25 Nov 2024 23:13:48 +0100 Subject: [PATCH 09/11] Use master branch --- control_toolbox.jazzy.repos | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/control_toolbox.jazzy.repos b/control_toolbox.jazzy.repos index 5665b966..6703e9fe 100644 --- a/control_toolbox.jazzy.repos +++ b/control_toolbox.jazzy.repos @@ -6,7 +6,7 @@ repositories: realtime_tools: type: git url: https://github.com/ros-controls/realtime_tools - version: windows_ci + version: master filters: type: git url: https://github.com/christophfroehlich/filters.git From ffff932a3421be2481f9b9b81ac746f13ad15d5f Mon Sep 17 00:00:00 2001 From: Christoph Froehlich Date: Tue, 26 Nov 2024 12:03:27 +0000 Subject: [PATCH 10/11] Add additional windows dependencies file --- .github/workflows/binary-build-win.yml | 1 + control_toolbox.jazzy.repos | 4 ---- control_toolbox.windows.jazzy.repos | 17 +++++++++++++++++ 3 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 control_toolbox.windows.jazzy.repos diff --git a/.github/workflows/binary-build-win.yml b/.github/workflows/binary-build-win.yml index 100950e3..bea7eadf 100644 --- a/.github/workflows/binary-build-win.yml +++ b/.github/workflows/binary-build-win.yml @@ -28,3 +28,4 @@ jobs: ref_for_scheduled_build: ros2-master os_name: windows-2019 install_boost: true + windows_dependencies: control_toolbox.windows.jazzy.repos diff --git a/control_toolbox.jazzy.repos b/control_toolbox.jazzy.repos index 6703e9fe..f8ef4ecb 100644 --- a/control_toolbox.jazzy.repos +++ b/control_toolbox.jazzy.repos @@ -7,7 +7,3 @@ repositories: type: git url: https://github.com/ros-controls/realtime_tools version: master - filters: - type: git - url: https://github.com/christophfroehlich/filters.git - version: ros2-boost diff --git a/control_toolbox.windows.jazzy.repos b/control_toolbox.windows.jazzy.repos new file mode 100644 index 00000000..4b4f31b3 --- /dev/null +++ b/control_toolbox.windows.jazzy.repos @@ -0,0 +1,17 @@ +repositories: + filters: + type: git + url: https://github.com/christophfroehlich/filters.git + version: ros2-boost + 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 From 70a00b3a552c11674fff83f209f3cfc6e64474c8 Mon Sep 17 00:00:00 2001 From: Christoph Froehlich Date: Wed, 27 Nov 2024 10:07:41 +0000 Subject: [PATCH 11/11] Use vcpkg --- .github/workflows/binary-build-win.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/binary-build-win.yml b/.github/workflows/binary-build-win.yml index bea7eadf..2e3dc826 100644 --- a/.github/workflows/binary-build-win.yml +++ b/.github/workflows/binary-build-win.yml @@ -28,4 +28,5 @@ jobs: ref_for_scheduled_build: ros2-master os_name: windows-2019 install_boost: true + install_vcpkg: true windows_dependencies: control_toolbox.windows.jazzy.repos