Skip to content

feat(cmake): Add support for MSVC 17.11 #2146

feat(cmake): Add support for MSVC 17.11

feat(cmake): Add support for MSVC 17.11 #2146

Workflow file for this run

name: Linux
on:
push:
paths:
# Workflow file itself
- '.github/workflows/Linux.yml'
# C++ files
- '**.cpp'
- '**.hpp'
# CMake files
- '**.cmake'
- '**.txt'
# Script files
- '**.sh'
pull_request:
branches:
- main
- develop
paths:
# Workflow file itself
- '.github/workflows/Linux.yml'
# C++ files
- '**.cpp'
- '**.hpp'
# CMake files
- '**.cmake'
- '**.txt'
# Script files
- '**.sh'
release:
types: [published]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
clang:
runs-on: 'ubuntu-20.04'
# Don't run on dependabot PRs
if: github.actor != 'dependabot[bot]'
strategy:
fail-fast: false
matrix:
compiler_version:
- "9"
- "10"
- "11"
- "12"
- "13"
- "14"
- "15"
- "16"
- "17"
- "18"
- "19"
build_type:
- "Debug"
- "Release"
dynamic_test:
- "none"
- "asan"
- "lsan"
- "tsan"
- "ubsan"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Environment
run: scripts/ci/SetupEnvironment.sh
- name: Install compiler
run: scripts/ci/InstallTools.sh clang-${{ matrix.compiler_version }} ninja
- name: Configure build directory
run: |
mkdir build -p
cd build
cmake -DCMAKE_BUILD_TYPE:STRING=${{ matrix.build_type }} -DPHI_ENABLE_SANITIZER_ADDRESS:BOOL=${{ matrix.dynamic_test == 'asan' }} -DPHI_ENABLE_SANITIZER_LEAK:BOOL=${{ matrix.dynamic_test == 'lsan' }} -DPHI_ENABLE_SANITIZER_MEMORY:BOOL=${{ matrix.dynamic_test == 'msan' }} -DPHI_ENABLE_SANITIZER_THREAD:BOOL=${{ matrix.dynamic_test == 'tsan' }} -DPHI_ENABLE_SANITIZER_UNDEFINED:BOOL=${{ matrix.dynamic_test == 'ubsan' }} ..
- name: Build
working-directory: ./build
run: cmake --build . --config ${{ matrix.build_type }}
- name: Run tests
working-directory: ./build
run: ctest . -C ${{ matrix.build_type }}
gcc:
runs-on: ${{ matrix.cfg.os }}
# Don't run on dependabot PRs
if: github.actor != 'dependabot[bot]'
strategy:
fail-fast: false
matrix:
# Pair of os version and gcc version
cfg:
- { os: ubuntu-20.04, compiler_version: "7" }
- { os: ubuntu-20.04, compiler_version: "8" }
- { os: ubuntu-20.04, compiler_version: "9" }
- { os: ubuntu-20.04, compiler_version: "10" }
- { os: ubuntu-20.04, compiler_version: "11" }
- { os: ubuntu-22.04, compiler_version: "12" }
- { os: ubuntu-22.04, compiler_version: "13" }
- { os: ubuntu-24.04, compiler_version: "14" }
build_type:
- "Debug"
- "Release"
dynamic_test:
- "none"
- "asan"
- "lsan"
- "tsan"
- "ubsan"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Environment
run: scripts/ci/SetupEnvironment.sh
- name: Install compiler
run: scripts/ci/InstallTools.sh gcc-${{ matrix.cfg.compiler_version }} ninja
- name: Configure build directory
run: |
mkdir build -p
cd build
cmake -DCMAKE_BUILD_TYPE:STRING=${{ matrix.build_type }} -DPHI_ENABLE_SANITIZER_ADDRESS:BOOL=${{ matrix.dynamic_test == 'asan' }} -DPHI_ENABLE_SANITIZER_LEAK:BOOL=${{ matrix.dynamic_test == 'lsan' }} -DPHI_ENABLE_SANITIZER_MEMORY:BOOL=${{ matrix.dynamic_test == 'msan' }} -DPHI_ENABLE_SANITIZER_THREAD:BOOL=${{ matrix.dynamic_test == 'tsan' }} -DPHI_ENABLE_SANITIZER_UNDEFINED:BOOL=${{ matrix.dynamic_test == 'ubsan' }} ..
- name: Build
working-directory: ./build
run: cmake --build . --config ${{ matrix.build_type }}
- name: Run tests
working-directory: ./build
run: ctest . -C ${{ matrix.build_type }}