Fix Debian x64 build: drop nonexistent libwlroots-dev, build wlroots 0.19.1 without -Werror

Debian >= trixie packages wlroots versioned (libwlroots-0.20-dev,
pkg-config wlroots-0.20), which falls outside the >=0.19,<0.20 pin, so
the bundled 0.19.1 source build is used. Fix the README apt line
accordingly and build the wlroots subproject with werror=false so the
newer libinput (1.31.3) enum LIBINPUT_SWITCH_KEYPAD_SLIDE is only a
warning, not a fatal -Werror=switch error.
This commit is contained in:
Andrew Hamilton 2026-08-10 09:25:52 +10:00
parent 2b034f990f
commit 5052a9b3ba
3 changed files with 17 additions and 8 deletions

2
.gitignore vendored
View file

@ -9,3 +9,5 @@ core.*
/build-*/
/subprojects/packagecache/
/subprojects/wlroots-0.19.1/
/subprojects/.wraplock
__pycache__/

View file

@ -24,12 +24,14 @@ The resulting binary is `build/tabbed-wlroots`.
```sh
sudo apt install build-essential meson ninja-build pkg-config \
libwayland-dev libwayland-bin wayland-protocols \
libwlroots-dev libxkbcommon-dev \
libegl1-mesa-dev libgles2-mesa-dev \
libpixman-1-dev libdisplay-info-dev libliftoff-dev libseat-dev
libxkbcommon-dev libpixman-1-dev \
libegl1-mesa-dev libgles2-mesa-dev
```
`libwlroots-dev` already satisfies the wlroots dependency on this platform.
No wlroots package is needed: this project targets wlroots 0.19, while
Debian/Ubuntu ship another version as a versioned package (e.g.
`libwlroots-0.20-dev` on Debian >= trixie, pkg-config name `wlroots-0.20`),
so Meson builds the bundled 0.19.1 instead (see below).
### Arch
@ -51,9 +53,13 @@ sudo dnf install gcc meson ninja-build pkgconf-pkg-config \
The Meson setup searches for `wlroots-0.19` then `wlroots`; if neither is
installed it builds the pinned 0.19.1 from `subprojects/wlroots.wrap`, which
only needs the wayland, wayland-protocols, xkbcommon and EGL/GLES2 dev
packages listed above. Optional wlroots features (Vulkan, X11, libinput,
etc.) are auto-detected and skipped when their build deps aren't present, so
a minimal install works too.
packages listed above. On newer Debian/Ubuntu the packaged wlroots is a
versioned library (e.g. `libwlroots-0.20-dev`, pkg-config `wlroots-0.20`)
whose version falls outside this project's `>=0.19,<0.20` pin, so the
fallback build is used automatically and no wlroots package needs to be
installed. Optional wlroots features (Vulkan, X11, libinput, etc.) are
auto-detected and skipped when their build deps aren't present, so a minimal
install works too.
## Usage

View file

@ -14,7 +14,8 @@ if not wlroots.found()
wlroots = dependency('wlroots', version: wlroots_ver, required: false)
endif
if not wlroots.found()
wlroots_subproj = subproject('wlroots', default_options: ['examples=false'])
wlroots_subproj = subproject('wlroots',
default_options: ['examples=false', 'werror=false'])
wlroots = wlroots_subproj.get_variable('wlroots')
endif