deploy qt loader #19
This file contains 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: Linux tests | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
concurrency: | |
group: "linux" | |
cancel-in-progress: true | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
compiler: [clang15, clang17] | |
build_type: [Release] | |
include: | |
#- compiler: gcc # crashes after everything is done. i don't know why, i don't care. i'm sorry if this is biting you (knowing from experience, it'll bite me at some point XD). | |
#CC: '/usr/bin/gcc' | |
#CXX: '/usr/bin/g++' | |
#asan: 'OFF' | |
- compiler: clang15 | |
CC: '/usr/bin/clang-15' | |
CXX: '/usr/bin/clang++-15' | |
asan: 'ON' | |
- compiler: clang17 | |
CC: '/usr/bin/clang-17' | |
CXX: '/usr/bin/clang++-17' | |
asan: 'ON' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: 'true' | |
- name: Install Clang 17 | |
if: matrix.compiler == 'clang17' | |
run: | | |
wget https://apt.llvm.org/llvm.sh | |
chmod +x ./llvm.sh | |
sudo ./llvm.sh 17 | |
- name: Install Linux Dependencies | |
run: | | |
sudo apt-get install -y build-essential ninja-build lld clang-15 libgl1-mesa-dev libxcb-cursor-dev xorg-dev libxrandr-dev libxcursor-dev libudev-dev libopenal-dev libflac-dev libvorbis-dev libgl1-mesa-dev libegl1-mesa-dev libdrm-dev libgbm-dev xvfb libxcb-cursor0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 | |
- name: Install Qt | |
uses: jurplel/install-qt-action@v3 | |
with: | |
aqtversion: '==3.1.*' | |
version: '6.6.1' | |
host: 'linux' | |
target: 'desktop' | |
arch: 'gcc_64' | |
dir: '${{github.workspace}}/qt' | |
install-deps: 'true' | |
modules: 'qtcharts qtpositioning' | |
- name: Configure | |
env: | |
CC: ${{ matrix.CC }} | |
CXX: ${{ matrix.CXX }} | |
CMAKE_PREFIX_PATH: ${{env.Qt6_Dir}}/lib/cmake | |
run: > | |
cmake -G Ninja | |
-DALP_ENABLE_ADDRESS_SANITIZER=${{ matrix.asan }} | |
-DCMAKE_BUILD_TYPE=Debug | |
-B ./build | |
- name: Build | |
env: | |
CC: ${{ matrix.CC }} | |
CXX: ${{ matrix.CXX }} | |
run: | | |
cmake --build ./build | |
- name: Don't close loaded libraries for better sanitizer output | |
if: matrix.asan == 'ON' | |
env: | |
CC: ${{ matrix.CC }} | |
CXX: ${{ matrix.CXX }} | |
run: | | |
echo "#include <stdio.h>" >> dlclose.c | |
echo "int dlclose(void*) { return 0; }" >> dlclose.c | |
$CC --shared dlclose.c -o libdlclose.so | |
- name: Unittests on Linux | |
if: matrix.asan == 'ON' | |
env: | |
QT_QPA_PLATFORM: offscreen | |
DISPLAY: :1 | |
LD_PRELOAD: ./libdlclose.so | |
LSAN_OPTIONS: suppressions=./sanitizer_supressions/linux_leak.supp | |
ASAN_OPTIONS: verify_asan_link_order=0 | |
run: | | |
Xvfb :1 -screen 0 1024x768x16 & | |
sleep 5 | |
./build/unittests/test_qml_catch2_console | |
- name: Unittests on Linux | |
if: matrix.asan == 'OFF' | |
env: | |
QT_QPA_PLATFORM: offscreen | |
DISPLAY: :1 | |
run: | | |
Xvfb :1 -screen 0 1024x768x16 & | |
sleep 5 | |
./build/unittests/test_qml_catch2_console | |