5353
5454
5555 # #############################################################################
56- # 2) Windows – MSVC / Ninja
56+ # 2) Windows x64 – MSVC (x64-windows)
5757 # #############################################################################
5858 windows-build-and-test :
5959 name : Windows (MSVC) (x64-windows)
8585 shell : bash
8686 run : ./out/Release/unit_tests.exe
8787
88+
89+
90+ # #############################################################################
91+ # 3) Windows x86 – MSVC (x86-windows)
92+ # #############################################################################
93+ windows-x86-build-and-test :
94+ name : Windows (MSVC) (x86-windows)
95+ runs-on : windows-latest
96+ env :
97+ OMATH_BUILD_VIA_VCPKG : ON
98+
99+ steps :
100+ - name : Checkout repository (with sub-modules)
101+ uses : actions/checkout@v4
102+ with :
103+ submodules : recursive
104+
105+ - name : Install Ninja
106+ uses : seanmiddleditch/gha-setup-ninja@v4
107+
108+ - name : Set up MSVC developer command-prompt
109+ uses : ilammy/msvc-dev-cmd@v1
110+ with :
111+ arch : amd64_x86
112+
113+ - name : Configure (cmake --preset)
114+ shell : bash
115+ run : cmake --preset windows-release-vcpkg-x86 -DOMATH_BUILD_TESTS=ON -DOMATH_BUILD_BENCHMARK=OFF -DVCPKG_MANIFEST_FEATURES="imgui;avx2;tests"
116+
117+ - name : Build
118+ shell : bash
119+ run : cmake --build cmake-build/build/windows-release-vcpkg-x86 --target unit_tests omath
120+
121+ - name : Run unit_tests.exe
122+ shell : bash
123+ run : ./out/Release/unit_tests.exe
124+
88125 # #############################################################################
89126 # 3) macOS – AppleClang / Ninja
90127 # #############################################################################
@@ -306,4 +343,169 @@ jobs:
306343 - name : Build
307344 shell : bash
308345 run : |
309- cmake --build cmake-build/build/wasm-release-vcpkg --target unit_tests omath
346+ cmake --build cmake-build/build/wasm-release-vcpkg --target unit_tests omath
347+
348+ # #############################################################################
349+ # 7) Windows MSYS2 MinGW – GCC / Ninja / x64-mingw-dynamic
350+ # #############################################################################
351+ mingw-build-and-test :
352+ name : MINGW64 (MSYS2) (x64-mingw-dynamic)
353+ runs-on : windows-latest
354+
355+ defaults :
356+ run :
357+ shell : msys2 {0}
358+
359+ env :
360+ VCPKG_ROOT : ${{ github.workspace }}/vcpkg
361+
362+ steps :
363+ - name : Setup MSYS2
364+ uses : msys2/setup-msys2@v2
365+ with :
366+ msystem : MINGW64
367+ update : true
368+ install : >-
369+ mingw-w64-x86_64-toolchain
370+ mingw-w64-x86_64-cmake
371+ mingw-w64-x86_64-ninja
372+ mingw-w64-x86_64-pkg-config
373+ git
374+ base-devel
375+
376+ - name : Checkout repository (with sub-modules)
377+ uses : actions/checkout@v4
378+ with :
379+ submodules : recursive
380+
381+ - name : Set up vcpkg
382+ run : |
383+ git clone https://github.com/microsoft/vcpkg "$VCPKG_ROOT"
384+ cd "$VCPKG_ROOT"
385+ ./bootstrap-vcpkg.sh
386+
387+ - name : Configure (cmake --preset)
388+ run : |
389+ cmake --preset mingw-release-vcpkg \
390+ -DVCPKG_INSTALL_OPTIONS="--allow-unsupported" \
391+ -DOMATH_BUILD_TESTS=ON \
392+ -DOMATH_BUILD_BENCHMARK=OFF \
393+ -DVCPKG_MANIFEST_FEATURES="imgui;tests"
394+
395+ - name : Build
396+ run : |
397+ cmake --build cmake-build/build/mingw-release-vcpkg --target unit_tests omath
398+
399+ - name : Run unit_tests.exe
400+ run : |
401+ ./out/Release/unit_tests.exe
402+
403+ # #############################################################################
404+ # 8) Windows UCRT64 MSYS2 MinGW – GCC / Ninja / x64-mingw-dynamic
405+ # #############################################################################
406+ mingw-ucrt-build-and-test :
407+ name : UCRT64 (MSYS2) (x64-mingw-dynamic)
408+ runs-on : windows-latest
409+
410+ defaults :
411+ run :
412+ shell : msys2 {0}
413+
414+ env :
415+ VCPKG_ROOT : ${{ github.workspace }}/vcpkg
416+
417+ steps :
418+ - name : Setup MSYS2
419+ uses : msys2/setup-msys2@v2
420+ with :
421+ msystem : UCRT64
422+ update : true
423+ install : >-
424+ mingw-w64-ucrt-x86_64-toolchain
425+ mingw-w64-ucrt-x86_64-cmake
426+ mingw-w64-ucrt-x86_64-ninja
427+ mingw-w64-ucrt-x86_64-pkg-config
428+ git
429+ base-devel
430+
431+ - name : Checkout repository (with sub-modules)
432+ uses : actions/checkout@v4
433+ with :
434+ submodules : recursive
435+
436+ - name : Set up vcpkg
437+ run : |
438+ git clone https://github.com/microsoft/vcpkg "$VCPKG_ROOT"
439+ cd "$VCPKG_ROOT"
440+ ./bootstrap-vcpkg.sh
441+
442+ - name : Configure (cmake --preset)
443+ run : |
444+ cmake --preset mingw-release-vcpkg \
445+ -DVCPKG_INSTALL_OPTIONS="--allow-unsupported" \
446+ -DOMATH_BUILD_TESTS=ON \
447+ -DOMATH_BUILD_BENCHMARK=OFF \
448+ -DVCPKG_MANIFEST_FEATURES="imgui;tests"
449+
450+ - name : Build
451+ run : |
452+ cmake --build cmake-build/build/mingw-release-vcpkg --target unit_tests omath
453+
454+ - name : Run unit_tests.exe
455+ run : |
456+ ./out/Release/unit_tests.exe
457+
458+ # #############################################################################
459+ # 9) Windows MSYS2 MinGW32 – GCC / Ninja / x86-mingw-dynamic
460+ # #############################################################################
461+ mingw32-build-and-test :
462+ name : MINGW32 (MSYS2) (x86-mingw-dynamic)
463+ runs-on : windows-latest
464+
465+ defaults :
466+ run :
467+ shell : msys2 {0}
468+
469+ env :
470+ VCPKG_ROOT : ${{ github.workspace }}/vcpkg
471+
472+ steps :
473+ - name : Setup MSYS2
474+ uses : msys2/setup-msys2@v2
475+ with :
476+ msystem : MINGW32
477+ update : true
478+ install : >-
479+ mingw-w64-i686-toolchain
480+ mingw-w64-i686-cmake
481+ mingw-w64-i686-ninja
482+ mingw-w64-i686-pkg-config
483+ git
484+ base-devel
485+
486+ - name : Checkout repository (with sub-modules)
487+ uses : actions/checkout@v4
488+ with :
489+ submodules : recursive
490+
491+ - name : Set up vcpkg
492+ run : |
493+ git clone https://github.com/microsoft/vcpkg "$VCPKG_ROOT"
494+ cd "$VCPKG_ROOT"
495+ ./bootstrap-vcpkg.sh
496+
497+ - name : Configure (cmake --preset)
498+ run : |
499+ cmake --preset mingw32-release-vcpkg \
500+ -DVCPKG_INSTALL_OPTIONS="--allow-unsupported" \
501+ -DOMATH_BUILD_TESTS=ON \
502+ -DOMATH_BUILD_BENCHMARK=OFF \
503+ -DVCPKG_MANIFEST_FEATURES="imgui;tests"
504+
505+ - name : Build
506+ run : |
507+ cmake --build cmake-build/build/mingw32-release-vcpkg --target unit_tests omath
508+
509+ - name : Run unit_tests.exe
510+ run : |
511+ ./out/Release/unit_tests.exe
0 commit comments