Skip to content

Shorten build time: Move 'doc' generation into a separate job, and run only for Trixie. #45

Shorten build time: Move 'doc' generation into a separate job, and run only for Trixie.

Shorten build time: Move 'doc' generation into a separate job, and run only for Trixie. #45

name: Build for Linux (Bookworm, libwlroots-0.18)
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
env:
INSTALL_PATH: "${HOME}/wlmaker"
INSTALL_LIBRARY_PATH: "${HOME}/wlmaker/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)"
INSTALL_PKGCONFIG_PATH: "${HOME}/wlmaker/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/pkgconfig/:${HOME}/wlmaker/share/pkgconfig/"
jobs:
build_matrix:
strategy:
matrix:
compiler: [ "gcc" ]
runs-on: ubuntu-latest
container:
image: debian:bookworm
steps:
- name: Install package dependencies.
run: |
apt-get update
apt-get install -y \
bison \
clang \
cmake \
flex \
foot \
git \
glslang-dev \
glslang-tools \
gnustep-base-runtime \
graphviz \
libcairo2-dev \
libgbm-dev \
libinput-dev \
libncurses-dev \
libseat-dev \
libudev-dev \
libvulkan-dev \
libwayland-dev \
libxcb-composite0-dev \
libxcb-dri3-dev \
libxcb-ewmh-dev \
libxcb-icccm4-dev \
libxcb-present-dev \
libxcb-render-util0-dev \
libxcb-res0-dev \
libxcb-xinput-dev \
libxkbcommon-dev \
libxml2-dev \
meson \
plantuml \
seatd \
wayland-protocols \
xmlto \
xsltproc \
xwayland
- name: Checkout code, including git submodules.
uses: actions/checkout@v4
with:
submodules: recursive
- name: Configure and build dependencies/.
run: |
export CC="${{ matrix.compiler }}"
export PKG_CONFIG_PATH="${{ env.INSTALL_PKGCONFIG_PATH }}"
export LD_LIBRARY_PATH="${{ env.INSTALL_LIBRARY_PATH }}"
export PATH="${PATH}:${{ env.INSTALL_PATH }}/bin"
cmake -DCMAKE_INSTALL_PREFIX:PATH=${{ env.INSTALL_PATH }} dependencies/ -B dependencies/build/
cmake --build dependencies/build
- name: Configure wlmaker through CMake.
run: |
export CC="${{ matrix.compiler }}"
export PKG_CONFIG_PATH="${{ env.INSTALL_PKGCONFIG_PATH }}"
export LD_LIBRARY_PATH="${{ env.INSTALL_LIBRARY_PATH }}"
export PATH="${PATH}:${{ env.INSTALL_PATH }}/bin"
cmake -DCMAKE_INSTALL_PREFIX:PATH=${{ env.INSTALL_PATH }} -B build/
- name: Build wlmaker.
run: |
export CC="${{ matrix.compiler }}"
export LD_LIBRARY_PATH="${{ env.INSTALL_LIBRARY_PATH }}"
export PATH="${PATH}:${{ env.INSTALL_PATH }}/bin"
cmake --build build/
- name: Run all tests.
run: |
export LD_LIBRARY_PATH="${{ env.INSTALL_LIBRARY_PATH }}"
ctest --test-dir build/ --build-run-dir build/ -V