fix #248
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: Windows | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
msys2: | |
runs-on: windows-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
sys: [mingw32, mingw64, ucrt64, clang64, clang32] | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: 📂 Load .env file | |
if: hashFiles('.github/workflows/.env') != '' | |
uses: xom9ikk/dotenv@v2 | |
with: | |
path: .github/workflows | |
- name: Setup MSYS2 | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: ${{matrix.sys}} | |
path-type: minimal | |
release: true | |
update: true | |
pacboy: >- | |
gcc:p | |
cmake:p | |
- name: ⚙️ run-cmake (configure) | |
uses: cmake-tools/run-cmake@v0-alpha | |
id: 'configure' | |
with: | |
mode: configure | |
generator: 'Ninja' | |
install_prefix: '../install' | |
binary_dir: '../build' | |
variables: | | |
CMAKE_BUILD_TYPE=Debug | |
- name: Run CMake | |
run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug | |
- name: Build | |
run: cmake --build build --parallel 2 | |
- name: Test | |
run: cd build ; ctest -C Debug --output-on-failure ${{ env.CTEST_VERBOSITY }} | |
msvc2019: | |
runs-on: windows-2019 | |
strategy: | |
fail-fast: false | |
matrix: | |
architecture: [win32, x64] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: 📂 Load .env file | |
if: hashFiles('.github/workflows/.env') != '' | |
uses: xom9ikk/dotenv@v2 | |
with: | |
path: .github/workflows | |
- uses: TheMrMilchmann/setup-msvc-dev@v3 | |
with: | |
arch: ${{ matrix.architecture }} | |
- name: ⚙️ run-cmake (configure) | |
uses: cmake-tools/run-cmake@v0-alpha | |
id: 'configure' | |
with: | |
mode: configure | |
generator: 'Visual Studio 16 2019' | |
platform: ${{ matrix.architecture }} | |
install_prefix: '../install' | |
binary_dir: '../build' | |
- name: Build | |
run: cmake --build build --config Debug --parallel 2 | |
- name: Test | |
run: cd build ; ctest -C Debug --output-on-failure ${{ env.CTEST_VERBOSITY }} | |
msvc2022: | |
runs-on: windows-2022 | |
strategy: | |
fail-fast: false | |
matrix: | |
architecture: [x64_x86, x64] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: 📂 Load .env file | |
if: hashFiles('.github/workflows/.env') != '' | |
uses: xom9ikk/dotenv@v2 | |
with: | |
path: .github/workflows | |
- uses: TheMrMilchmann/setup-msvc-dev@v3 | |
with: | |
arch: ${{ matrix.architecture }} | |
- name: ⚙️ run-cmake (configure) | |
uses: cmake-tools/run-cmake@v0-alpha | |
id: 'configure' | |
with: | |
mode: configure | |
generator: 'Visual Studio 17 2022' | |
platform: ${{ matrix.architecture }} | |
install_prefix: '../install' | |
binary_dir: '../build' | |
- name: Build | |
run: cmake --build build --config Debug --parallel 2 | |
- name: Test | |
run: cd build ; ctest -C Debug --output-on-failure ${{ env.CTEST_VERBOSITY }} | |
clang: | |
runs-on: windows-2022 | |
strategy: | |
fail-fast: false | |
matrix: | |
version: [7.1.0, 8.0.1, 9.0.1, 10.0.0, 11.0.1, 11.1.0, 12.0.1, 13.0.1, 14.0.6, 15.0.7, 16.0.6, 17.0.6, 18.1.4] | |
architecture: [x64_x86, x64] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: 📂 Load .env file | |
if: hashFiles('.github/workflows/.env') != '' | |
uses: xom9ikk/dotenv@v2 | |
with: | |
path: .github/workflows | |
- uses: TheMrMilchmann/setup-msvc-dev@v3 | |
with: | |
arch: ${{ matrix.architecture }} | |
- name: Install Clang | |
run: curl -fsSL -o LLVM${{ matrix.version }}.exe https://github.com/llvm/llvm-project/releases/download/llvmorg-${{ matrix.version }}/LLVM-${{ matrix.version }}-win64.exe ; 7z x LLVM${{ matrix.version }}.exe -y -o"C:/Program Files/LLVM" | |
- name: ⚙️ run-cmake (configure) | |
uses: cmake-tools/run-cmake@v0-alpha | |
id: 'configure' | |
with: | |
mode: configure | |
platform: ${{ matrix.architecture }} | |
install_prefix: '../install' | |
binary_dir: '../build' | |
variables: | | |
CMAKE_BUILD_TYPE=Debug | |
CMAKE_CXX_COMPILER="C:/Program Files/LLVM/bin/clang++.exe" | |
CMAKE_C_COMPILER="C:/Program Files/LLVM/bin/clang.exe" | |
- name: Build | |
run: cmake --build build --parallel 2 | |
- name: Test | |
run: cd build ; ctest -C Debug --output-on-failure ${{ env.CTEST_VERBOSITY }} | |
clang-cl: | |
runs-on: windows-2022 | |
strategy: | |
fail-fast: false | |
matrix: | |
architecture: [x64_x86, x64] | |
version: [7.1.0, 8.0.1, 9.0.1, 10.0.0, 11.0.1, 11.1.0, 12.0.1, 13.0.1, 14.0.6, 15.0.7, 16.0.6, 17.0.6, 18.1.4] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: 📂 Load .env file | |
if: hashFiles('.github/workflows/.env') != '' | |
uses: xom9ikk/dotenv@v2 | |
with: | |
path: .github/workflows | |
- uses: TheMrMilchmann/setup-msvc-dev@v3 | |
with: | |
arch: ${{ matrix.architecture }} | |
- name: Install Clang | |
run: curl -fsSL -o LLVM${{ matrix.version }}.exe https://github.com/llvm/llvm-project/releases/download/llvmorg-${{ matrix.version }}/LLVM-${{ matrix.version }}-win64.exe ; 7z x LLVM${{ matrix.version }}.exe -y -o"C:/Program Files/LLVM" | |
- name: ⚙️ run-cmake (configure) | |
uses: cmake-tools/run-cmake@v0-alpha | |
id: 'configure' | |
with: | |
mode: configure | |
generator: 'Visual Studio 17 2022' | |
toolset: ClangCL | |
platform: ${{ matrix.architecture }} | |
install_prefix: '../install' | |
binary_dir: '../build' | |
variables: | | |
CMAKE_BUILD_TYPE=Debug | |
CMAKE_CXX_COMPILER="C:/Program Files/LLVM/bin/clang++.exe" | |
CMAKE_C_COMPILER="C:/Program Files/LLVM/bin/clang.exe" | |
- name: Build | |
run: cmake --build build --config Debug --parallel 2 | |
- name: Test | |
run: cd build ; ctest -C Debug --output-on-failure ${{ env.CTEST_VERBOSITY }} |