name: Build on: push: branches: [main, master] paths: - '**.c' - '**.h' - '**.cpp' - '**.scm' - 'meson.build' - 'meson_options.txt' - 'flake.nix' - 'protocols/**' - '.github/workflows/build.yml' pull_request: branches: [main, master] paths: - '**.c' - '**.h' - '**.cpp' - '**.scm' - 'meson.build' - 'meson_options.txt' - 'flake.nix' - 'protocols/**' - '.github/workflows/build.yml' workflow_dispatch: jobs: build: runs-on: ubuntu-latest permissions: contents: read steps: - name: Checkout code uses: actions/checkout@v4 - name: Install dependencies run: | sudo apt-get update sudo apt-get install -y \ meson \ ninja-build \ wayland-protocols \ libinput-dev \ libxkbcommon-dev \ libpcre2-dev \ libpixman-1-dev \ libdrm-dev \ libxcb1-dev \ libxcb-icccm4-dev \ xwayland \ hwdata \ libliftoff-dev \ libdisplay-info-dev \ libseat-dev \ libffi-dev \ libexpat1-dev \ libxml2-dev \ pkg-config - name: Build and install wayland 1.23.1 run: | # Build wayland 1.23.1 from source git clone https://gitlab.freedesktop.org/wayland/wayland.git cd wayland git checkout 1.23.1 # Download meson subprojects if needed meson subprojects download || true meson setup build/ --prefix=/usr -Ddocumentation=false sudo ninja -C build/ install sudo ldconfig cd .. - name: Install wlroots 0.19.0 run: | # Install wlroots 0.19 from source git clone https://gitlab.freedesktop.org/wlroots/wlroots.git cd wlroots git checkout 0.19.0 # Download meson subprojects if needed meson subprojects download || true meson setup build/ --prefix=/usr sudo ninja -C build/ install sudo ldconfig cd .. - name: Install scenefx 0.4.1 run: | # Install scenefx from source git clone -b 0.4.1 https://github.com/wlrfx/scenefx.git cd scenefx # Download meson subprojects if needed meson subprojects download || true meson setup build/ --prefix=/usr sudo ninja -C build/ install sudo ldconfig cd .. - name: Configure meson run: | # Download meson subprojects if needed meson subprojects download || true meson setup build/ --prefix=/usr - name: Build project run: | ninja -C build/ - name: Build summary run: | echo "✅ Build completed successfully!" echo "Built executables:" ls -lh build/mango build/mmsg