cage-kiosk / cage

A Wayland kiosk
https://www.hjdskes.nl/projects/cage
MIT License
1.23k stars 79 forks source link

Ubuntu 24.04.1 LTS x86_64 meson.build:38:17: ERROR: Neither a subproject directory nor a wlroots.wrap file was found #358

Open nawip opened 1 month ago

nawip commented 1 month ago

how to fix this error?

/Experiments/cage$ meson setup build The Meson build system Version: 1.3.2 Source dir: /Experiments/cage Build dir: /Experiments/cage/build Build type: native build Project name: cage Project version: 0.2.0 C compiler for the host machine: ccache cc (gcc 13.2.0 "cc (Ubuntu 13.2.0-23ubuntu4) 13.2.0") C linker for the host machine: cc ld.bfd 2.42 Host machine cpu family: x86_64 Host machine cpu: x86_64 Found pkg-config: YES (/usr/bin/pkg-config) 1.8.1 Found CMake: /usr/bin/cmake (3.28.3) Run-time dependency wlroots-0.18 found: NO (tried pkgconfig and cmake) Looking for a fallback subproject for the dependency wlroots-0.18

meson.build:38:17: ERROR: Neither a subproject directory nor a wlroots.wrap file was found.

A full log can be found at /Experiments/cage/build/meson-logs/meson-log.txt

joggee-fr commented 1 month ago

Either find a dev package providing wlroots 0.18 or take a look at Meson subprojects to clone the wlroots repository at the right location.

ZirixCZ commented 1 month ago

You can fix this by creating a subprojects directory in the root directory of cage. Clone wlroots into this directory. It should look like this (cage-root)/subprojects/wlroots/(wlroots-root) There, in the wlroots-root, checkout the needed version (they setup branches for each main version, so git checkout 0.18 will do the job). Then run meson build in the wlroots subprojects directory. After this being successful you can go back to the cage-root directory and run command again.

joggee-fr commented 1 month ago

Then run meson build in the wlroots subprojects directory. After this being successful you can go back to the cage-root directory and run command again.

No need to run meson build directly in the wlroots subproject. It will be done by the main cage project once subproject found.