name: windows-cmake on: push: paths-ignore: - 'CHANGES*' - 'Doc/**' - 'appveyor.yml' pull_request: branches: master paths-ignore: - 'CHANGES*' - 'Doc/**' - 'appveyor.yml' permissions: contents: read jobs: cmake: runs-on: ${{ matrix.os }} name: CMake VS ${{ matrix.VER }} strategy: matrix: include: - VER: '17 2022' os: 'windows-2022' - VER: '16 2019' os: 'windows-2019' env: BUILD_SYS: Visual Studio ${{ matrix.VER }} steps: - name: Machine Info shell: powershell run: | systeminfo | findstr /B /C:"OS Name" /B /C:"OS Version" - name: Checkout uses: actions/checkout@v4 with: show-progress: true - name: Install CCache uses: hendrikmuhs/ccache-action@v1 with: key: ${{ matrix.os }} - name: Install NuGet Packages shell: powershell run: | nuget install PCRE2 -OutputDirectory C:\Tools nuget install Bison -OutputDirectory C:\Tools # https://cygwin.com/cygwin-ug-net/cygpath.html - name: Prepare Environment shell: bash run: | cat << EOF >> $GITHUB_ENV PCRE2_PATH=$(cygpath -w "$(ls -d /C/Tools/PCRE2*)") EOF BISON_PATH=$(cygpath -w "$(ls -d /C/Tools/Bison*)/bin") echo "$BISON_PATH" >> $GITHUB_PATH - name: Configure shell: powershell run: | cmake --version cmake -G "$env:BUILD_SYS" -A x64 ` -DCMAKE_INSTALL_PREFIX="C:\Tools\swig" ` -DCMAKE_C_FLAGS="/W3 /EHsc /DPCRE2_STATIC" ` -DCMAKE_CXX_FLAGS="/W3 /EHsc /DPCRE2_STATIC" ` -DPCRE2_INCLUDE_DIR="$env:PCRE2_PATH\include" ` -DPCRE2_LIBRARY="$env:PCRE2_PATH\lib\pcre2-8-static.lib" ` -DLINK_FLAGS="/NODEFAULTLIB:MSVCRT" -S . -B . - name: Build shell: powershell run: | cmake --build . --config Release - name: Test shell: powershell run: | ctest --output-on-failure -V -C Release - name: Install shell: powershell run: | cmake --install . C:\Tools\swig\bin\swig.exe -version