fix submodules #19
This file contains hidden or 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: CMake on multiple platforms | |
on: | |
push: | |
branches: [ "master" ] | |
pull_request: | |
branches: [ "master" ] | |
jobs: | |
build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: true | |
matrix: | |
os: [ubuntu-latest, windows-latest] | |
build_type: [Release] | |
c_compiler: [gcc, clang, cl] | |
include: | |
- os: windows-latest | |
c_compiler: cl | |
cpp_compiler: cl | |
- os: ubuntu-latest | |
c_compiler: gcc | |
cpp_compiler: g++ | |
- os: ubuntu-latest | |
c_compiler: clang | |
cpp_compiler: clang++ | |
exclude: | |
- os: windows-latest | |
c_compiler: gcc | |
- os: windows-latest | |
c_compiler: clang | |
- os: ubuntu-latest | |
c_compiler: cl | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Set reusable strings | |
id: strings | |
shell: bash | |
run: | | |
echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT" | |
- name: Configure CMake | |
run: > | |
cmake -B ${{ steps.strings.outputs.build-output-dir }} | |
-DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }} | |
-DCMAKE_C_COMPILER=${{ matrix.c_compiler }} | |
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} | |
-DPI_THREADPOOL_BUILD_TESTS=ON | |
-S ${{ github.workspace }} | |
- name: Build | |
run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build_type }} | |
- name: Test | |
working-directory: ${{ steps.strings.outputs.build-output-dir }} | |
run: ctest --build-config ${{ matrix.build_type }} | |
# FreeBSD build using vmactions/freebsd-vm@v1 | |
build-freebsd: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Build & Test on FreeBSD | |
uses: vmactions/freebsd-vm@v1 | |
with: | |
release: "13.4" | |
usesh: true | |
prepare: | | |
pkg update -f | |
pkg install -y cmake ninja llvm16 | |
run: | | |
export PATH="/usr/local/llvm16/bin:$PATH" | |
which clang-scan-deps || (echo "clang-scan-deps not found!" && exit 1) | |
mkdir -p build | |
cmake -B build -G Ninja \ | |
-DCMAKE_C_COMPILER=cc \ | |
-DCMAKE_CXX_COMPILER=c++ \ | |
-DCMAKE_BUILD_TYPE=Release \ | |
-DPI_THREADPOOL_BUILD_TESTS=ON \ | |
. | |
cmake --build build | |
cd build | |
ctest --output-on-failure | |
# OpenBSD build using vmactions/openbsd-vm@v1 | |
build-openbsd: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Build & Test on OpenBSD | |
uses: vmactions/openbsd-vm@v1 | |
with: | |
release: "7.6" | |
usesh: true | |
prepare: | | |
export PKG_PATH="https://cdn.openbsd.org/pub/OpenBSD/7.6/packages/amd64/" | |
pkg_add -I cmake-3.30.1v1 ninja-1.11.1p0v0 llvm-16.0.6p30 | |
run: | | |
export PATH="/usr/local/llvm/bin:$PATH" | |
which clang-scan-deps || (echo "clang-scan-deps not found!" && exit 1) | |
mkdir -p build | |
cmake -B build -G Ninja \ | |
-DCMAKE_C_COMPILER=cc \ | |
-DCMAKE_CXX_COMPILER=c++ \ | |
-DCMAKE_BUILD_TYPE=Release \ | |
-DPI_THREADPOOL_BUILD_TESTS=ON \ | |
. | |
cmake --build build | |
cd build | |
ctest --output-on-failure |