meson: use proper handling of wayland-protocols dependency

Ensure that resolution of the subproject occurs via the dependency
interface, not the "poke at subprojects manually" interface, and make
that actually work via --wrap-mode=forcefallback.

There's no need to mark it as not-required and then manually invoke
subproject(), since fallback should work correctly and it is always
needed.

However, if fallback was performed (or forced) it would error out since
get_variable() was instructed to only use pkg-config while the relevant
variable was exported by the subproject as an internal fallback
dependency.
This commit is contained in:
Eli Schwartz 2022-03-10 00:08:36 -05:00 committed by Jordan Petridis
parent 3e4bfa2bae
commit e2873bc614

View File

@ -517,15 +517,11 @@ if wayland_enabled
wlclientdep = dependency('wayland-client', version: wayland_req,
fallback: 'wayland',
default_options: ['documentation=false'])
wlprotocolsdep = dependency('wayland-protocols', version: wayland_proto_req, required: false)
wlprotocolsdep = dependency('wayland-protocols', version: wayland_proto_req)
wlegldep = dependency('wayland-egl',
fallback: 'wayland')
if not wlprotocolsdep.found()
wlproto_dir = subproject('wayland-protocols').get_variable('wayland_protocols_srcdir')
else
wlproto_dir = wlprotocolsdep.get_variable(pkgconfig: 'pkgdatadir')
endif
wlproto_dir = wlprotocolsdep.get_variable('pkgdatadir')
wayland_pkgs = [
'wayland-client @0@'.format(wayland_req),