name: VS17-CI C++20

on: [push, pull_request]

jobs:
  ci:
    name: vs17/${{matrix.arch}}/${{matrix.cfg}}
    runs-on: windows-latest
    strategy:
      fail-fast: false
      matrix:
        include:
          - {gen: Visual Studio 17 2022, arch: Win32, cfg: Release}
          - {gen: Visual Studio 17 2022, arch: Win32, cfg: Debug}
          - {gen: Visual Studio 17 2022, arch: x64, cfg: Release}
          - {gen: Visual Studio 17 2022, arch: x64, cfg: Debug}
    steps:
      - name: checkout
        uses: actions/checkout@v6.0.2
      - name: configure
        run: >-
          cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}}
          -DFASTFLOAT_CXX_STANDARD=20
          -DFASTFLOAT_TEST=ON
          -DFASTFLOAT_CONSTEXPR_TESTS=ON
          -DCMAKE_INSTALL_PREFIX:PATH=destination
      - name: build
        run: |
          cmake --build build --verbose --config ${{matrix.cfg}} --parallel
      - name: test
        run: |
          cd build &&
          ctest --output-on-failure -C ${{matrix.cfg}}
