Skip to content

Merge pull request #1578 from Karry/cpp-std-20 #868

Merge pull request #1578 from Karry/cpp-std-20

Merge pull request #1578 from Karry/cpp-std-20 #868

name: Ubuntu 22.04
on:
pull_request:
branches:
- master
push:
branches:
- master
paths-ignore:
- '.github/workflows/**'
jobs:
build_clang_meson:
name: clang and meson
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Update package list
run: sudo apt-get update
- name: Install software-properties-common
run: sudo apt-get install software-properties-common
- name: Install clang compiler and Co
run: sudo apt-get -y install clang libc++-dev ccache libtool pkg-config
- name: Install meson and ninja via pip
run: "pip install meson ninja"
- name: Install libosmscout dependencies
run: "sudo apt-get install -y
libxml2-dev
libprotobuf-dev protobuf-compiler
libagg-dev
libfreetype6-dev libcairo2-dev libpangocairo-1.0-0 libpango1.0-dev
qtdeclarative5-dev libqt5svg5-dev qtlocation5-dev qtpositioning5-dev qttools5-dev-tools
qttools5-dev qtmultimedia5-dev
libglm-dev libglew-dev freeglut3 freeglut3-dev
libmarisa-dev"
- name: Configure build project
run: meson setup --buildtype debugoptimized --unity on debug
env:
CXX: clang++
CC: clang
- name: Build project
run: ninja -C debug
- name: Run tests
run: meson test -C debug --print-errorlogs
build_gcc_meson:
name: gcc and meson
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install software-properties-common
run: sudo apt-get install software-properties-common
- name: Install gcc compiler and Co
run: sudo apt-get -y install gcc-12 g++-12 libtbb-dev ccache libtool pkg-config
- name: Install meson and ninja via pip
run: "pip install meson ninja"
- name: Install libosmscout dependencies
run: "sudo apt-get update && sudo apt-get install -y
libxml2-dev
libprotobuf-dev protobuf-compiler
libagg-dev
libfreetype6-dev libcairo2-dev libpangocairo-1.0-0 libpango1.0-dev
qtdeclarative5-dev libqt5svg5-dev qtlocation5-dev qtpositioning5-dev qttools5-dev-tools
qttools5-dev qtmultimedia5-dev
libglm-dev libglew-dev freeglut3 freeglut3-dev
libmarisa-dev"
- name: Configure build project
run: meson setup --buildtype debugoptimized --unity on debug
env:
CXX: g++-12
CC: gcc-12
- name: Build project
run: ninja -C debug
- name: Run tests
run: meson test -C debug --print-errorlogs
build_gcc_cmake:
name: gcc and cmake
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install software-properties-common
run: sudo apt-get install software-properties-common
- name: Install gcc compiler, cmake and ninja
run: sudo apt-get -y install gcc-12 g++-12 libtbb-dev ccache libtool pkg-config cmake ninja-build
- name: Install libosmscout dependencies
run: "sudo apt-get update && sudo apt-get install -y
libxml2-dev
libprotobuf-dev protobuf-compiler
libagg-dev
libfreetype6-dev libcairo2-dev libpangocairo-1.0-0 libpango1.0-dev
qtdeclarative5-dev libqt5svg5-dev qtlocation5-dev qtpositioning5-dev qttools5-dev-tools
qttools5-dev qtmultimedia5-dev
libglm-dev libglew-dev freeglut3 freeglut3-dev libglfw3-dev libxrandr-dev libxcursor-dev libxinerama-dev libxi-dev libxxf86vm-dev
xvfb
libmarisa-dev"
- name: Configure build project
run: cmake -B build -DCMAKE_UNITY_BUILD=ON -Wno-dev -G "Ninja"
env:
CXX: g++-12
CC: gcc-12
- name: Build project
run: cmake --build build
- name: Install project
run: sudo cmake --install build
- name: Run tests
run: xvfb-run ctest -j 2 --output-on-failure
env:
QT_QPA_PLATFORM: offscreen
working-directory: build
build_gcc_meson_qt6:
name: gcc and meson with Qt6
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install software-properties-common
run: sudo apt-get install software-properties-common
- name: Install gcc compiler and Co
run: sudo apt-get -y install gcc-12 g++-12 libtbb-dev ccache libtool pkg-config
- name: Install meson and ninja via pip
run: "pip install meson ninja"
- name: Install libosmscout dependencies
run: "sudo apt-get update && sudo apt-get install -y
libfreetype6-dev libcairo2-dev libpangocairo-1.0-0 libpango1.0-dev
qmake6 libqt6svg6-dev libqt6core5compat6-dev qt6-declarative-dev qt6-positioning-dev qt6-tools-dev-tools
qt6-l10n-tools qt6-tools-dev qt6-multimedia-dev
libglm-dev libgl-dev"
- name: Configure build project
run: PATH=/usr/lib/qt6/bin:/usr/lib/qt6/libexec:$PATH meson setup --buildtype debugoptimized --unity on --wrap-mode=nofallback -D qtVersion=6 debug
env:
CXX: g++-12
CC: gcc-12
- name: Build project
run: ninja -C debug
- name: Run tests
run: meson test -C debug --print-errorlogs
build_gcc_cmake_qt6:
name: gcc and cmake with Qt6
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install software-properties-common
run: sudo apt-get install software-properties-common
- name: Install gcc compiler, cmake and ninja
run: sudo apt-get -y install gcc-12 g++-12 libtbb-dev ccache libtool pkg-config cmake ninja-build
- name: Install libosmscout dependencies
run: "sudo apt-get update && sudo apt-get install -y
libprotobuf-dev protobuf-compiler
qmake6 libqt6svg6-dev libqt6core5compat6-dev qt6-declarative-dev qt6-positioning-dev qt6-tools-dev-tools
qt6-l10n-tools qt6-tools-dev qt6-multimedia-dev"
- name: Configure build project
run: cmake -B build -DCMAKE_UNITY_BUILD=ON -Wno-dev -G "Ninja"
env:
CXX: g++-12
CC: gcc-12
- name: Build project
run: cmake --build build
- name: Install project
run: sudo cmake --install build
- name: Run tests
run: xvfb-run ctest -j 2 --output-on-failure
env:
QT_QPA_PLATFORM: offscreen
working-directory: build