webui-1.10 #1436
Workflow file for this run
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: Meson Test (Linux GCC) | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [] | |
jobs: | |
test-linux-gcc: | |
strategy: | |
matrix: | |
dep: ["apt", "source"] | |
gcc-ver: [7, 9, 11, 13] | |
include: | |
- os: ubuntu-20.04 | |
gcc_ver: 7 | |
- os: ubuntu-20.04 | |
gcc_ver: 9 | |
- os: ubuntu-22.04 | |
gcc_ver: 11 | |
- os: ubuntu-24.04 | |
gcc_ver: 13 | |
- dep: static | |
os: ubuntu-20.04 | |
gcc_ver: 9 | |
runs-on: ${{matrix.os}} | |
steps: | |
- uses: actions/checkout@v4 | |
# - run: git submodule update --init | |
# if: matrix.dep == 'submodule' | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y ninja-build | |
sudo apt-get install -y gcc-${{matrix.gcc_ver}} g++-${{matrix.gcc_ver}} | |
if [[ ${{matrix.dep}} = apt ]]; then sudo apt-get install -y libspdlog-dev libjpeg-dev libpng-dev libwebp-dev; fi | |
if [[ ${{matrix.dep}} = apt ]]; then sudo apt-get install -y libopencv-dev googletest; fi | |
if [[ ${{matrix.dep}} = apt ]] && [[ ${{matrix.os}} = ubuntu-22.04 ]]; then sudo apt-get install -y libcli11-dev; fi | |
if [[ ${{matrix.dep}} = apt ]] && [[ ${{matrix.os}} = ubuntu-24.04 ]]; then sudo apt-get install -y libcli11-dev libmsgpack-cxx-dev; fi | |
- name: Install meson | |
run: pip install meson || pip install --break-system-packages meson | |
- name: Setup Meson | |
env: | |
CC: gcc-${{matrix.gcc_ver}} | |
CXX: g++-${{matrix.gcc_ver}} | |
run: > | |
meson setup build | |
--buildtype=debug | |
$([[ ${{matrix.dep}} = apt ]] && echo -Dwrap_mode=default) | |
-Dtest_wait=200 | |
$([[ ${{matrix.dep}} = static ]] && echo -Ddefault_library=static) | |
--prefix=${{github.workspace}}/build/install | |
- name: Compile | |
run: meson compile -C build || meson compile -C build | |
- name: Test | |
run: meson test -C build --print-errorlog | |
- name: Check Exported Symbol | |
if: matrix.dep == 'source' | |
run: | | |
bash -c "! nm -g --defined-only build/libwebcface.so | grep -v webcface | grep -v wcf | grep -v St | grep -v gnu_cxx" | |
bash -c "! nm -g --defined-only build/libwebcface.so | grep -v webcface | grep -v wcf | grep spdlog" | |
bash -c "! nm -g --defined-only build/libwebcface.so | grep -v webcface | grep -v wcf | grep crow" | |
bash -c "! nm -g --defined-only build/libwebcface.so | grep -v webcface | grep -v wcf | grep asio" | |
bash -c "! nm -g --defined-only build/libwebcface.so | grep -v webcface | grep -v wcf | grep utf8" | |
- name: install | |
run: meson install -C build | |
- name: Test CMake with installed package | |
if: matrix.dep != 'static' | |
working-directory: ${{github.workspace}}/.github/test | |
env: | |
CC: gcc-${{matrix.gcc_ver}} | |
CXX: g++-${{matrix.gcc_ver}} | |
run: | | |
cmake -B build -DCMAKE_PREFIX_PATH=${{github.workspace}}/build/install | |
cmake --build build | |
- name: Test building with pkg-config | |
working-directory: ${{github.workspace}}/.github/test | |
env: | |
PKG_CONFIG_PATH: ${{github.workspace}}/build/install/lib/x86_64-linux-gnu/pkgconfig | |
run: | | |
pkg-config --cflags --libs webcface | |
g++-${{matrix.gcc_ver}} -std=c++17 test.cc $(pkg-config --cflags --libs webcface) | |
gcc-${{matrix.gcc_ver}} -std=c99 test.c $(pkg-config --cflags --libs webcface) -lstdc++ | |
- name: Test building with Meson using pkg-config | |
working-directory: ${{github.workspace}}/.github/test | |
env: | |
CC: gcc-${{matrix.gcc_ver}} | |
CXX: g++-${{matrix.gcc_ver}} | |
PKG_CONFIG_PATH: ${{github.workspace}}/build/install/lib/x86_64-linux-gnu/pkgconfig | |
run: | | |
meson setup buildm | |
meson compile -Cbuildm | |
- name: Test building with Meson using CMake | |
if: matrix.dep != 'static' | |
working-directory: ${{github.workspace}}/.github/test | |
env: | |
CC: gcc-${{matrix.gcc_ver}} | |
CXX: g++-${{matrix.gcc_ver}} | |
run: | | |
meson setup buildmc -Dcmake_prefix_path=${{github.workspace}}/build/install | |
meson compile -Cbuildmc | |