name: Windows

on:
  workflow_dispatch:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:
    runs-on: windows-latest
    name: "build: ${{ matrix.arch }} ${{ matrix.config }} ${{ matrix.link }}"
    strategy:
      fail-fast: false
      matrix:
        arch: [Win32, x64]
        config: [Debug, Release]
        link: [static, dll]

        include:
        - link: static
          shlib: "OFF"
        - link: dll
          shlib: "ON"
    steps:
      - uses: actions/checkout@v4
      - name: configure
        run: cmake -Bbuild -DUSE_ASYNC:BOOL=OFF -DBUILD_SHARED_LIBS:BOOL=${{ matrix.shlib }} -A ${{ matrix.arch }}
      - name: make
        run: cmake --build build --config ${{ matrix.config }}
      - name: make check
        run: ctest --test-dir build -T test -C ${{ matrix.config }} -j8 --output-on-failure