Skip to content

Base for c++ modules #800

Base for c++ modules

Base for c++ modules #800

Workflow file for this run

name: Build-Linux
on:
push:
branches:
- master
pull_request:
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04]
shared: [TRUE, FALSE]
compiler:
- { compiler: GNU, CC: gcc, CXX: g++ }
- { compiler: LLVM, CC: clang-16, CXX: clang++-16 }
steps:
# switch to ubuntu 23.10
- name: Update Repositories
run: |
sudo sed -i 's/jammy/mantic/g' /etc/apt/sources.list
- uses: actions/checkout@v4
with:
submodules: true
- name: Install system dependencies
run: |
sudo apt-get update && \
sudo apt-get install \
gcc \
ninja-build \
qt6-base-dev \
qt6-declarative-dev \
qt6-declarative-dev-tools \
qt6-declarative-private-dev \
qt6-multimedia-dev \
qt6-quick3d-dev \
qt6-quick3d-dev-tools \
qt6-l10n-tools \
qml6-module-qtqml-workerscript \
qml6-module-qtquick-window \
libqt6shadertools6-dev \
libqt6svg6-dev \
libqt6quick3druntimerender6 \
libboost-dev \
libopencv-dev \
libdlib-dev \
libexiv2-dev \
libgmock-dev \
libgl1-mesa-dev \
libglvnd-dev \
libwebp-dev
# todo: this step will be redundant when github actions use ubuntu >= 23.10 by default
- name: Install clang
if: matrix.compiler.compiler == 'LLVM'
run: |
sudo apt-get install \
clang \
- name: Install magic enum
run: |
sudo wget https://raw.githubusercontent.com/Neargye/magic_enum/87190b8/include/magic_enum.hpp -O /usr/include/magic_enum.hpp
- name: Install CsLibGuarded
run: |
git clone -b libguarded-1.4.1 https://github.com/copperspice/cs_libguarded.git
cd cs_libguarded
mkdir build
cd build
cmake ..
cmake --build . --target all
sudo cmake --build . --target install
- name: Setup ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ github.job }}-${{ matrix.compiler.compiler }}
- name: Build
uses: ashutoshvarma/action-cmake-build@master
with:
build-dir: ${{ runner.workspace }}/build
build-type: Release
cc: ${{ matrix.compiler.CC }}
cxx: ${{ matrix.compiler.CXX }}
configure-options: \
-DBUILD_SHARED_LIBS=${{ matrix.shared }} \
-DLUPDATE=/usr/lib/qt6/bin/lupdate \
-DLRELEASE:FILEPATH=/usr/lib/qt6/bin/lrelease \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DENABLE_SANITIZERS_FOR_TESTS=TRUE
run-test: true
ctest-options: \
--output-on-failure \
--repeat until-fail:5