name: Windows
permissions:
  contents: read

on:
  push:
    paths-ignore:
      - 'README.md'
      - 'doc/**'
  pull_request:
    paths-ignore:
      - 'README.md'
      - 'doc/**'

jobs:
  vs2022:
    strategy:
      fail-fast: false
      matrix:
        build_type: [Debug, Release]
        architecture: [x64, x86]

    runs-on: windows-latest

    steps:
    - uses: actions/checkout@v6
      with:
        submodules: recursive

    - run: cmake -E make_directory build

    - shell: bash
      working-directory: build/
      run: cmake $GITHUB_WORKSPACE -G "Visual Studio 17 2022" -DJSONCONS_BUILD_TESTS=On -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON

    - working-directory: build/
      run: cmake --build . --config ${{ matrix.build_type }}

    - working-directory: build/
      run: ctest -C ${{ matrix.build_type }} --output-on-failure

  vs2022-clang:
    strategy:
      fail-fast: false
      matrix:
        build_type: [Debug, Release]
        architecture: [x64, x86]

    runs-on: windows-latest

    steps:
    - uses: actions/checkout@v6
      with:
        submodules: recursive

    - run: cmake -E make_directory build

    - shell: bash
      working-directory: build/
      run: cmake $GITHUB_WORKSPACE -G "Visual Studio 17 2022" -T ClangCL -DJSONCONS_BUILD_TESTS=On 

    - working-directory: build/
      run: cmake --build . --config ${{ matrix.build_type }}

    - working-directory: build/
      run: ctest -C ${{ matrix.build_type }} --output-on-failure

