mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2026-05-02 06:46:29 -04:00
118 lines
3 KiB
YAML
118 lines
3 KiB
YAML
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 \
|
|
libgles2-mesa-dev \
|
|
libegl1-mesa-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
|