mirror of https://gitlab.freedesktop.org/mesa/mesa
meson: Key whether to build batch decoder on expat
Instead of on Android. Which allows an end user to turn off expat
without breaking or disabling Intel support. I've additionally
refactored to separate expat and xmlconfig a bit more in the root
meson.build
This does make expat a hard dependency for building Intel tools, despite
the fact that only aubinator actually requires it. This simplifies the
build for the common case, and in the event that someone wants to build
the Intel tools and doesn't have libexpat, they can fall back to the
meson wrap for expat instead.
fixes: 75276deebc
closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8791
Reviewed-by: Mark Janes <markjanes@swizzler.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23605>
This commit is contained in:
parent
b717a43826
commit
ce07aabab1
24
meson.build
24
meson.build
|
@ -1497,18 +1497,28 @@ if dep_thread.found()
|
|||
endif
|
||||
endif
|
||||
|
||||
# We don't have expat on Android or Windows, which is a needed dep for xmlconfig
|
||||
opt_xmlconfig = get_option('xmlconfig') \
|
||||
.require(not (with_platform_android or with_platform_windows),
|
||||
error_message : 'xmlconfig not available on Android or Windows')
|
||||
with_expat = get_option('expat') \
|
||||
.disable_auto_if(with_platform_android or with_platform_windows)
|
||||
|
||||
if host_machine.system() == 'darwin'
|
||||
dep_expat = meson.get_compiler('c').find_library('expat', required : opt_xmlconfig)
|
||||
dep_expat = meson.get_compiler('c').find_library('expat', required : with_expat)
|
||||
else
|
||||
dep_expat = dependency('expat', fallback : ['expat', 'expat_dep'],
|
||||
required : opt_xmlconfig)
|
||||
required : with_expat)
|
||||
endif
|
||||
use_xmlconfig = dep_expat.found()
|
||||
|
||||
# TODO: with Meson 1.1.0 this can be replaced with with_expat.enable_if(with_intel_tools)
|
||||
if with_intel_tools and not dep_expat.found()
|
||||
error('Intel tools require expat')
|
||||
endif
|
||||
|
||||
# We don't require expat on Android or Windows
|
||||
use_xmlconfig = get_option('xmlconfig') \
|
||||
.require(not (with_platform_android or with_platform_windows),
|
||||
error_message : 'xmlconfig not available on Android or Windows') \
|
||||
.require(dep_expat.found(),
|
||||
error_message : 'requires expat') \
|
||||
.allowed()
|
||||
|
||||
# Predefined macros for windows
|
||||
if host_machine.system() == 'windows'
|
||||
|
|
|
@ -58,6 +58,14 @@ option(
|
|||
'separated list. Default: dri-drivers-path.'
|
||||
)
|
||||
|
||||
option(
|
||||
'expat',
|
||||
type : 'feature',
|
||||
value : 'auto',
|
||||
description : 'Controls the use of expat. ' +
|
||||
'Cannot be disabled if xmlconfig is enabled.'
|
||||
)
|
||||
|
||||
option(
|
||||
'gallium-drivers',
|
||||
type : 'array',
|
||||
|
@ -649,6 +657,7 @@ option(
|
|||
'the default driconf file is hardcoded into Mesa. ' +
|
||||
'Requires expat.'
|
||||
)
|
||||
|
||||
option (
|
||||
'intel-xe-kmd',
|
||||
type : 'feature',
|
||||
|
|
|
@ -58,7 +58,7 @@ files_batch_decoder = files(
|
|||
)
|
||||
|
||||
batch_decoder_dependencies = []
|
||||
if with_platform_android
|
||||
if not dep_expat.found()
|
||||
files_libintel_common += 'intel_batch_decoder_stub.c'
|
||||
else
|
||||
batch_decoder_dependencies += dep_expat
|
||||
|
|
Loading…
Reference in New Issue