From bdc240e13eb9f5d00af9f908ca0d822cfca12e5c Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Tue, 15 Nov 2022 14:12:06 -0500 Subject: [PATCH] meson: Don't depend on expat for !use_xmlconfig If we don't use xmlconfig, expat becomes an optional dependency on Linux/BSD, which may be convenient for embedded systems that do not otherwise need expat. (expat is so ubiquitous that this probably doesn't matter a ton in practice, but fewer required Mesa deps is probably nice anyway.) Signed-off-by: Alyssa Rosenzweig Suggested-by: Dylan Baker Reviewed-by: Jesse Natalie Part-of: --- meson.build | 16 ++++++++++++---- src/util/meson.build | 9 --------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/meson.build b/meson.build index da66100676085..4f3f8cfa41c1f 100644 --- a/meson.build +++ b/meson.build @@ -1633,13 +1633,21 @@ if dep_thread.found() pre_args += '-DHAVE_PTHREAD_SETAFFINITY' endif endif + +# We don't have expat on Android or Windows, which is a needed dep for xmlconfig +supports_xmlconfig = not (with_platform_android or with_platform_windows) + +opt_xmlconfig = get_option('xmlconfig') +if opt_xmlconfig.enabled() and not supports_xmlconfig + error('xmlconfig not available on Android or Windows') +endif +use_xmlconfig = supports_xmlconfig and not opt_xmlconfig.disabled() + if host_machine.system() == 'darwin' dep_expat = meson.get_compiler('c').find_library('expat') -elif host_machine.system() != 'windows' - dep_expat = dependency('expat', fallback : ['expat', 'expat_dep'], - required: not with_platform_android) else - dep_expat = null_dep + dep_expat = dependency('expat', fallback : ['expat', 'expat_dep'], + required: use_xmlconfig) endif # Predefined macros for windows if host_machine.system() == 'windows' diff --git a/src/util/meson.build b/src/util/meson.build index 2ae5156f9a841..b6960a7717ebe 100644 --- a/src/util/meson.build +++ b/src/util/meson.build @@ -284,15 +284,6 @@ idep_mesautil = declare_dependency( dependencies : deps_for_libmesa_util, ) -# We don't have expat on Android or Windows, which is a needed dep for xmlconfig -supports_xmlconfig = not (with_platform_android or with_platform_windows) - -opt_xmlconfig = get_option('xmlconfig') -if opt_xmlconfig.enabled() and not supports_xmlconfig - error('xmlconfig not available on Android or Windows') -endif -use_xmlconfig = supports_xmlconfig and not opt_xmlconfig.disabled() - # Only install the drirc file if we build with support for parsing drirc files if use_xmlconfig install_data(files_drirc, install_dir : join_paths(get_option('datadir'), 'drirc.d'))