name: VS18 All supported C++ standards

on: [push, pull_request]

jobs:
  ci:
    name: windows-vs18
    runs-on: windows-latest
    strategy:
      fail-fast: false
      matrix:
        cppversion: [17, 20, 23]
        gen: ["Visual Studio 18 2026"]
        arch: [x64]
        shared: [ON]
    steps:
    - name: checkout
      uses: actions/checkout@v6
    - name: Configure
      run: |
        cmake `
           -G "${{matrix.gen}}" `
           -A ${{matrix.arch}} `
           -DSIMDUTF_CXX_STANDARD=${{matrix.cppversion}} `
           -DSIMDUTF_ALWAYS_INCLUDE_FALLBACK=ON `
           -DSIMDUTF_BENCHMARKS=OFF `
           -DSIMDUTF_FAST_TESTS=On `
           -DBUILD_SHARED_LIBS=${{matrix.shared}} `
           -B build `
           -S .
    - name: Build Release
      run: cmake --build build --config Release --verbose
    - name: Run Release tests
      run: |
        cd build
        ctest -C Release --output-on-failure
