| 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 |