diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ffff574a..3b6c5df4 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -188,6 +188,48 @@ jobs: run: | ctest -j 4 --output-on-failure -T test + mingw: + strategy: + matrix: + # Build each combination of OS and release/debug variants + os: [ windows-2019 ] + msystem: [ ucrt64, mingw64 ] + build-type: [ Release, Debug ] + include: + - msystem: ucrt64 + package-prefix: ucrt-x86_64 + cmake-flags: LDFLAGS="-fuse-ld=lld -lstdc++ -lgcc_s" + - msystem: mingw64 + package-prefix: x86_64 + cmake-flags: LDFLAGS="-fuse-ld=lld -lstdc++ -lgcc_s" + # Don't abort runners if a single one fails + fail-fast: false + runs-on: ${{ matrix.os }} + name: ${{ matrix.os }} ${{ matrix.msystem }} ${{ matrix.build-type}} + defaults: + run: + shell: msys2 {0} + steps: + - uses: actions/checkout@v3 + - uses: msys2/setup-msys2@v2 + with: + msystem: ${{ matrix.msystem }} + update: true + install: git mingw-w64-${{ matrix.package-prefix }}-clang mingw-w64-${{ matrix.package-prefix }}-lld mingw-w64-${{ matrix.package-prefix }}-cmake + - name: Configure CMake + run: | + mkdir build + cd build + ${{ matrix.cmake-flags }} cmake .. -DTESTS=ON -DCMAKE_C_COMPILER="clang" -DCMAKE_CXX_COMPILER="clang" -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} + - name: Build + working-directory: build + run: | + cmake --build . + - name: Test + working-directory: build + run: | + ctest -j 4 --output-on-failure -T test + # Fake check that can be used as a branch-protection rule. all-checks: