From aed62f8fbea3f618f97ee0105b2d430c8cddf8f5 Mon Sep 17 00:00:00 2001 From: Olivier Fourdan Date: Thu, 1 Aug 2019 13:34:13 +0200 Subject: [PATCH] meson/xwayland: No libdrm nor epoxy without glamor When building Xwayland with neither DRI nor GLamor support enabled with the Meson build system, the resulting binary would still link against libdrm and epoxy even though those are not used/needed. Make sure we require and link against libdrm and epoxy only if needed. Signed-off-by: Olivier Fourdan --- include/meson.build | 2 +- meson.build | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/include/meson.build b/include/meson.build index 2c1b49e06..3c72e5bbb 100644 --- a/include/meson.build +++ b/include/meson.build @@ -94,7 +94,7 @@ conf_data.set('NEED_DBUS', build_systemd_logind or build_hal) conf_data.set('CONFIG_WSCONS', host_machine.system() == 'openbsd') conf_data.set('HAVE_XSHMFENCE', xshmfence_dep.found()) -conf_data.set('WITH_LIBDRM', libdrm_dep.found()) +conf_data.set('WITH_LIBDRM', libdrm_required) conf_data.set('GLAMOR_HAS_EGL_QUERY_DMABUF', epoxy_dep.found() and epoxy_dep.version().version_compare('>= 1.4.4')) conf_data.set('GLXEXT', build_glx) diff --git a/meson.build b/meson.build index be3252a71..def32e9b9 100644 --- a/meson.build +++ b/meson.build @@ -192,14 +192,18 @@ if (host_machine.system() != 'darwin' and host_machine.system() != 'windows') if get_option('xwayland') != 'false' xwayland_required = get_option('xwayland') == 'true' + build_glamor = glamor_option == 'true' or glamor_option == 'auto' xwayland_dep = [ dependency('wayland-client', version: wayland_req, required: xwayland_required), dependency('wayland-protocols', version: wayland_protocols_req, required: xwayland_required), - dependency('libdrm', version: libdrm_req, required: xwayland_required), - dependency('epoxy', required: xwayland_required), ] + if build_glamor + xwayland_dep += dependency('libdrm', version: libdrm_req, required: xwayland_required) + xwayland_dep += dependency('epoxy', required: xwayland_required) + endif + build_xwayland = true # check for all the deps being found, to handle 'auto' mode. foreach d: xwayland_dep @@ -309,7 +313,7 @@ module_dir = join_paths(get_option('libdir'), get_option('module_dir')) if glamor_option == 'auto' build_glamor = build_xorg or build_xwayland else - build_glamor = get_option('glamor') == 'true' + build_glamor = glamor_option == 'true' endif gbm_dep = dependency('', required: false)