fix #249
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: | |
- name: Checkout | |
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: | |
- name: Checkout | |
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: ⬇️ Setup CMake | |
uses: lukka/get-cmake@latest | |
with: | |
cmakeVersion: ^3 | |
ninjaVersion: ^1 | |
- 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: | |
- name: Checkout | |
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: ⬇️ Setup CMake | |
uses: lukka/get-cmake@latest | |
with: | |
cmakeVersion: ^3 | |
ninjaVersion: ^1 | |
- 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: | |
- name: Checkout | |
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: ⬇️ Setup CMake | |
uses: lukka/get-cmake@latest | |
with: | |
cmakeVersion: ^3 | |
ninjaVersion: ^1 | |
- 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: | |
- name: Checkout | |
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: ⬇️ Setup CMake | |
uses: lukka/get-cmake@latest | |
with: | |
cmakeVersion: ^3 | |
ninjaVersion: ^1 | |
- 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 }} |