xwayland: remove find_program() fallback when dep is not found

The dep allows us to check dep variables to discover supported
features. With the binary we assume none of the features are
supported. If a user forgets to install the pkg-config file (e.g.
because it's in a split package) we end up incorrectly disabling
all features. Instead let's error out.
This commit is contained in:
Simon Ser 2022-06-12 09:01:53 +02:00
parent 037b21647b
commit 1ed5137720
3 changed files with 7 additions and 28 deletions

View File

@ -15,7 +15,7 @@ packages:
- xcb-util-image-dev
- xcb-util-renderutil-dev
- xcb-util-wm-dev
- xwayland
- xwayland-dev
- libseat-dev
- hwdata
sources:

View File

@ -22,7 +22,7 @@ packages:
- x11/xcb-util-errors
- x11/xcb-util-renderutil
- x11/xcb-util-wm
- x11-servers/xwayland
- x11-servers/xwayland-devel
- sysutils/seatd
- gmake
- hwdata

View File

@ -19,17 +19,9 @@ if not get_option('xwayland').disabled()
msg += 'Required for Xwayland support.'
endif
xwayland = dependency('xwayland', required: false)
xwayland = dependency('xwayland', required: get_option('xwayland'))
if not xwayland.found()
# There's no Xwayland release with the pkg-config file shipped yet.
xwayland_prog = find_program('Xwayland', required: false)
if not xwayland_prog.found()
if get_option('xwayland').enabled()
error('\n'.join(msg).format('xwayland'))
else
subdir_done()
endif
endif
subdir_done()
endif
foreach lib : xwayland_required
@ -69,22 +61,9 @@ xwayland_feature_names = [
'terminate_delay',
]
xwayland_features = {}
if xwayland.found()
xwayland_path = xwayland.get_variable('xwayland')
foreach name : xwayland_feature_names
have = xwayland.get_variable('have_' + name, default_value: 'false') == 'true'
xwayland_features += { name: have }
endforeach
else
xwayland_path = xwayland_prog.full_path()
foreach name : xwayland_feature_names
xwayland_features += { name: false }
endforeach
endif
internal_config.set_quoted('XWAYLAND_PATH', xwayland_path)
foreach name, have : xwayland_features
internal_config.set_quoted('XWAYLAND_PATH', xwayland.get_variable('xwayland'))
foreach name : xwayland_feature_names
have = xwayland.get_variable('have_' + name, default_value: 'false') == 'true'
internal_config.set10('HAVE_XWAYLAND_' + name.to_upper(), have)
endforeach