Skip to content

Feature/add workflow #9

Feature/add workflow

Feature/add workflow #9

name: CMake on multiple platforms
on:
push:
branches: [ "develop" ]
pull_request:
branches: [ "develop" ]
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
build_type: [Release]
c_compiler: [gcc, clang, cl]
include:
# Windows - MSVC
- os: windows-latest
c_compiler: cl
cpp_compiler: cl
preset: msvc-release
# Ubuntu - GCC
- os: ubuntu-latest
c_compiler: gcc
cpp_compiler: g++
preset: gcc-release
# Ubuntu - Clang
- os: ubuntu-latest
c_compiler: clang
cpp_compiler: clang++
preset: llvm-release
# macOS - Clang (default compiler)
- os: macos-latest
c_compiler: clang
cpp_compiler: clang++
preset: appleclang-release
exclude:
- os: windows-latest
c_compiler: gcc
- os: windows-latest
c_compiler: clang
- os: ubuntu-latest
c_compiler: cl
- os: macos-latest
c_compiler: gcc
- os: macos-latest
c_compiler: cl
steps:
- name: Checkout source
uses: actions/checkout@v4
# # see https://github.com/marketplace/actions/enable-developer-command-prompt
- uses: ilammy/msvc-dev-cmd@v1
if: matrix.os == 'windows-latest'
with:
vsversion: 2022
arch: x64
- name: Configure and build using CMake preset
env:
CC: ${{ matrix.c_compiler }}
CXX: ${{ matrix.cpp_compiler }}
run: |
cmake --workflow --preset ${{ matrix.preset }}