build: add Meson wrap manifests for our dependencies
Add Meson wrap manifests for all of our dependencies which can
fallback to a subproject. This makes it easier to build wlroots
on platforms where system packages are outdated. Users can now
opt-in via meson configure --wrap-mode=default
and Meson will
download and build any missing dependency.
Don't download by default because this can be quite surprising and undesirable for some users (e.g. if they are just missing some -dev package).
A downside is that wrap files are automatically inherited by parent projects (compositors), even if wlroots has wrap_mode=nodownload
. This means all compositors will need to explicitly set wrap_mode=nodownload
if they want to prevent the auto-download-by-default behavior. There is no way to avoid this AFAIK.