name: Windows

on: [push, pull_request]

jobs:
  build-msvc:
    name: ${{matrix.msvc}}-${{matrix.arch}}-C++${{matrix.std}}-${{matrix.build_type}}-${{matrix.lib}}
    runs-on: ${{matrix.os}}
    permissions:
      actions: read
      contents: read
      security-events: write
    defaults:
      run:
        shell: powershell
    env:
      CL: /MP
      CXXFLAGS: /WX /permissive-
    strategy:
      fail-fast: true
      matrix:
        arch: [Win32, x64]
        build_type: [Debug, Release]
        lib: [shared, static]
        msvc: [VS-16-2019, VS-17-2022]
        std: [14, 17, 20, 23]
        include:
          - msvc: VS-16-2019
            os: windows-2019
            generator: 'Visual Studio 16 2019'
          - msvc: VS-17-2022
            os: windows-2022
            generator: 'Visual Studio 17 2022'

    steps:
      - uses: actions/checkout@v4

      - name: Initialize CodeQL
        uses: github/codeql-action/init@v3
        with:
          languages: cpp

      - name: Cache GTest
        id: cache-gtest
        uses: actions/cache@v4
        with:
          path: gtest/
          key: ${{runner.os}}-gtest-1.11-${{matrix.lib}}-${{matrix.arch}}-${{matrix.build_type}}

      - name: Download GTest
        if: steps.cache-gtest.outputs.cache-hit != 'true'
        run: |
          (New-Object System.Net.WebClient).DownloadFile("https://github.com/google/googletest/archive/refs/tags/release-1.11.0.zip", "release-1.11.0.zip")
          Expand-Archive release-1.11.0.zip .

      - name: Build GTest
        if: steps.cache-gtest.outputs.cache-hit != 'true'
        run: |
          cmake -S googletest-release-1.11.0 -B build-googletest `
                -A ${{matrix.arch}} `
                -DBUILD_SHARED_LIBS=${{matrix.lib == 'shared'}} `
                -Dgtest_force_shared_crt=ON `
                -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/gtest
          cmake --build build-googletest `
                --config ${{matrix.build_type}} `
                --target install

      - name: Cache gflags
        id: cache-gflags
        uses: actions/cache@v4
        with:
          path: gflags/
          key: ${{runner.os}}-gflags-2.2.2-${{matrix.lib}}-${{matrix.arch}}-${{matrix.build_type}}

      - name: Download gflags
        if: steps.cache-gflags.outputs.cache-hit != 'true'
        run: |
          (New-Object System.Net.WebClient).DownloadFile("https://github.com/gflags/gflags/archive/refs/tags/v2.2.2.zip", "v2.2.2.zip")
          Expand-Archive v2.2.2.zip .

      - name: Build gflags
        if: steps.cache-gflags.outputs.cache-hit != 'true'
        run: |
          cmake -S gflags-2.2.2 -B build-gflags `
                -A ${{matrix.arch}} `
                -DBUILD_SHARED_LIBS=${{matrix.lib == 'shared'}} `
                -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/gflags
          cmake --build build-gflags `
                --config ${{matrix.build_type}} `
                --target install

      - name: Setup Environment
        run: |
          echo "GTest_ROOT=$((Get-Item .).FullName)/gtest" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
          echo "gflags_ROOT=$((Get-Item .).FullName)/gflags" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
          echo "${{github.workspace}}/gtest/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
          echo "${{github.workspace}}/gflags/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append

      - name: Setup Release Environment
        if: matrix.build_type != 'Debug'
        run: |
          echo "CXXFLAGS=/Zi ${{env.CXXFLAGS}}" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append

      - name: Configure
        run: |
          cmake -S . -B build_${{matrix.build_type}} `
                -A ${{matrix.arch}} `
                -DBUILD_SHARED_LIBS=${{matrix.lib == 'shared'}} `
                -DCMAKE_CXX_EXTENSIONS=OFF `
                -DCMAKE_CXX_STANDARD=${{matrix.std}} `
                -DCMAKE_CXX_STANDARD_REQUIRED=ON `
                -DCMAKE_EXE_LINKER_FLAGS='/NOIMPLIB' `
                -DCMAKE_EXE_LINKER_FLAGS_RELEASE='/INCREMENTAL:NO /DEBUG' `
                -DCMAKE_INSTALL_PREFIX:PATH=./install `
                -DCMAKE_MSVC_RUNTIME_LIBRARY='MultiThreaded$<$<CONFIG:Debug>:Debug>DLL' `
                -G "${{matrix.generator}}" `
                -Werror

      - name: Build
        run: cmake --build build_${{matrix.build_type}} `
                   --config ${{matrix.build_type}}

      - name: Test
        env:
          CTEST_OUTPUT_ON_FAILURE: 1
        run: |
          cmake --build build_${{matrix.build_type}}/ `
                --config ${{matrix.build_type}} `
                --target RUN_TESTS

      - name: Install
        run: |
          cmake --build build_${{matrix.build_type}}/ `
                --config ${{matrix.build_type}} `
                --target install

      - name: Perform CodeQL Analysis
        uses: github/codeql-action/analyze@v3
        with:
          category: language:cpp

  build-mingw:
    name: ${{matrix.sys}}-${{matrix.env}}-C++${{matrix.std}}-${{matrix.build_type}}-${{matrix.lib}}
    runs-on: windows-2022
    permissions:
      actions: read
      contents: read
      security-events: write
    env:
      BUILDDIR: 'build_${{matrix.sys}}-${{matrix.env}}-C++${{matrix.std}}-${{matrix.build_type}}-${{matrix.lib}}'
    defaults:
      run:
        shell: msys2 {0}
    strategy:
      fail-fast: true
      matrix:
        build_type: [Debug]
        lib: [shared, static]
        std: [14, 17, 20, 23]
        sys: [mingw32, mingw64]
        include:
         - sys: mingw32
           env: i686
         - sys: mingw64
           env: x86_64

    steps:
      - uses: actions/checkout@v4

      - name: Initialize CodeQL
        uses: github/codeql-action/init@v3
        with:
          languages: cpp

      - uses: msys2/setup-msys2@v2
        with:
          msystem: ${{matrix.sys}}
          install: >-
            mingw-w64-${{matrix.env}}-cmake
            mingw-w64-${{matrix.env}}-gcc
            mingw-w64-${{matrix.env}}-gflags
            mingw-w64-${{matrix.env}}-ninja
            mingw-w64-${{matrix.env}}-python-jinja
            mingw-w64-${{matrix.env}}-python-lxml
            mingw-w64-${{matrix.env}}-python-pip
            mingw-w64-${{matrix.env}}-python-pygments

      - name: Setup Coverage Dependencies
        if: matrix.build_type == 'Debug'
        run: |
          pip install 'gcovr==7.0'

      - name: Setup Environment
        if: matrix.build_type == 'Debug'
        run: |
          echo 'CXXFLAGS=--coverage ${{env.CXXFLAGS}}' >> $GITHUB_ENV

      - name: Configure
        env:
          CXXFLAGS: -Wall -Wextra -Wpedantic -Wsign-conversion -Wtautological-compare -Wformat-nonliteral -Wundef -Werror ${{env.CXXFLAGS}}
        run: |
          cmake -S . -B build_${{matrix.build_type}}/ \
                -DBUILD_SHARED_LIBS=${{matrix.lib == 'shared'}} \
                -DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
                -DCMAKE_CXX_EXTENSIONS=OFF \
                -DCMAKE_CXX_STANDARD=${{matrix.std}} \
                -DCMAKE_CXX_STANDARD_REQUIRED=ON \
                -DCMAKE_INSTALL_PREFIX:PATH=./install \
                -G Ninja \
                -Werror

      - name: Build
        run: |
          cmake --build build_${{matrix.build_type}}/ --config ${{matrix.build_type}}

      - name: Test
        env:
          CTEST_OUTPUT_ON_FAILURE: 1
        run: |
          cmake --build build_${{matrix.build_type}}/ --config ${{matrix.build_type}} \
                --target test

      - name: Install
        run: |
          cmake --build build_${{matrix.build_type}}/ \
                --config ${{matrix.build_type}} \
                --target install

      - name: Generate Coverage
        if: matrix.build_type == 'Debug'
        run: |
          cd build_${{matrix.build_type}}
          gcovr -r .. . -s --cobertura coverage.xml

      - name: Upload Coverage to Codecov
        if: matrix.build_type == 'Debug'
        uses: codecov/codecov-action@v4
        with:
          token: ${{ secrets.CODECOV_TOKEN }}
          files: build_${{matrix.build_type}}/coverage.xml
          fail_ci_if_error: true
          verbose: true

      - name: Perform CodeQL Analysis
        uses: github/codeql-action/analyze@v3
