From 33326fc086569a3f3d1b1b2158374352d005de44 Mon Sep 17 00:00:00 2001 From: Eli Schwartz Date: Mon, 9 May 2022 17:44:47 -0400 Subject: [PATCH] meson: use proper dependency fallback for wlroots Make the subproject wrap file declare the dependencies it provides. Remove the manual subproject invocation and allow Meson to select whichever wlroots it finds which satisfies the version requirement -- either a system one via pkg-config, or the subproject fallback. Use a dependency-generic method of acquiring wlroots configuration info -- enabled features are present in the pkg-config file and additionally exported as declare_dependency() variables, so there is no need to do C preprocessor checks for it. This ensures that Meson best practices are followed, and also... Fixes #318 Backport of 2656cf525f677c59549ee42b966f542a13be19e8 to v0.5 --- meson.build | 16 ++++------------ subprojects/wlroots.wrap | 3 +++ 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/meson.build b/meson.build index e353d2fe..2a391afc 100644 --- a/meson.build +++ b/meson.build @@ -37,22 +37,14 @@ if git.found() endif add_project_arguments('-DLABWC_VERSION=@0@'.format(version), language: 'c') -wlroots_version = ['>=0.15.0', '<0.16.0'] -wlroots_proj = subproject( +wlroots = dependency( 'wlroots', default_options: ['default_library=static', 'examples=false'], - required: false, - version: wlroots_version, + version: ['>=0.15.0', '<0.16.0'], ) -if wlroots_proj.found() - wlroots = wlroots_proj.get_variable('wlroots') - wlroots_conf = wlroots_proj.get_variable('conf_data') - wlroots_has_xwayland = wlroots_conf.get('WLR_HAS_XWAYLAND') == 1 -else - wlroots = dependency('wlroots', version: wlroots_version) - wlroots_has_xwayland = cc.get_define('WLR_HAS_XWAYLAND', prefix: '#include ', dependencies: wlroots) == '1' -endif +wlroots_has_xwayland = wlroots.get_variable('have_xwayland') == 'true' + wayland_server = dependency('wayland-server', version: '>=1.19.0') wayland_protos = dependency('wayland-protocols') xkbcommon = dependency('xkbcommon') diff --git a/subprojects/wlroots.wrap b/subprojects/wlroots.wrap index 314d2c36..127fc49e 100644 --- a/subprojects/wlroots.wrap +++ b/subprojects/wlroots.wrap @@ -1,3 +1,6 @@ [wrap-git] url = https://gitlab.freedesktop.org/wlroots/wlroots.git revision = 0.15.1 + +[provide] +dependency_names = wlroots