mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-01-22 05:33:55 +08:00
meson: convert llvm option to tristate
This option has been acting as a strange sort of half-tri state anyway. Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com> Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
This commit is contained in:
parent
4b61b07e4b
commit
48f64e591f
46
meson.build
46
meson.build
@ -46,7 +46,6 @@ with_tests = get_option('build-tests')
|
||||
with_valgrind = get_option('valgrind')
|
||||
with_libunwind = get_option('libunwind')
|
||||
with_asm = get_option('asm')
|
||||
with_llvm = get_option('llvm')
|
||||
with_osmesa = get_option('osmesa')
|
||||
if get_option('texture-float')
|
||||
pre_args += '-DTEXTURE_FLOAT_ENABLED'
|
||||
@ -722,30 +721,33 @@ llvm_modules = ['bitwriter', 'engine', 'mcdisassembler', 'mcjit']
|
||||
if with_amd_vk
|
||||
llvm_modules += ['amdgpu', 'bitreader', 'ipo']
|
||||
endif
|
||||
dep_llvm = []
|
||||
if with_llvm
|
||||
|
||||
_llvm = get_option('llvm')
|
||||
if _llvm == 'auto'
|
||||
dep_llvm = dependency(
|
||||
'llvm', version : '>= 3.9.0', required : with_amd_vk, modules : llvm_modules,
|
||||
'llvm', version : '>= 3.9.0', modules : llvm_modules,
|
||||
required : with_amd_vk,
|
||||
)
|
||||
if dep_llvm.found()
|
||||
_llvm_version = dep_llvm.version().split('.')
|
||||
# Development versions of LLVM have an 'svn' suffix, we don't want that for
|
||||
# our version checks.
|
||||
_llvm_patch = _llvm_version[2]
|
||||
if _llvm_patch.endswith('svn')
|
||||
_llvm_patch = _llvm_patch.split('s')[0]
|
||||
endif
|
||||
pre_args += [
|
||||
'-DHAVE_LLVM=0x0@0@@1@@2@'.format(_llvm_version[0], _llvm_version[1], _llvm_patch),
|
||||
'-DMESA_LLVM_VERSION_PATCH=@0@'.format(_llvm_patch),
|
||||
]
|
||||
else
|
||||
if with_gallium_softpipe
|
||||
error('Cannot find LLVM to build LLVMPipe. If you wanted softpipe pass -Dllvm=false to meson')
|
||||
elif with_amd_vk or with_gallium_radeonsi # etc
|
||||
error('The following drivers requires LLVM: Radv, RadeonSI. One of these is enabled, but LLVM was not found.')
|
||||
endif
|
||||
with_llvm = dep_llvm.found()
|
||||
elif _llvm == 'true'
|
||||
dep_llvm = dependency('llvm', version : '>= 3.9.0', modules : llvm_modules)
|
||||
with_llvm = true
|
||||
else
|
||||
dep_llvm = []
|
||||
with_llvm = false
|
||||
endif
|
||||
if with_llvm
|
||||
_llvm_version = dep_llvm.version().split('.')
|
||||
# Development versions of LLVM have an 'svn' suffix, we don't want that for
|
||||
# our version checks.
|
||||
_llvm_patch = _llvm_version[2]
|
||||
if _llvm_patch.endswith('svn')
|
||||
_llvm_patch = _llvm_patch.split('s')[0]
|
||||
endif
|
||||
pre_args += [
|
||||
'-DHAVE_LLVM=0x0@0@@1@@2@'.format(_llvm_version[0], _llvm_version[1], _llvm_patch),
|
||||
'-DMESA_LLVM_VERSION_PATCH=@0@'.format(_llvm_patch),
|
||||
]
|
||||
elif with_amd_vk or with_gallium_radeonsi
|
||||
error('The following drivers requires LLVM: Radv, RadeonSI. One of these is enabled, but LLVM is disabled.')
|
||||
endif
|
||||
|
@ -132,8 +132,9 @@ option(
|
||||
)
|
||||
option(
|
||||
'llvm',
|
||||
type : 'boolean',
|
||||
value : true,
|
||||
type : 'combo',
|
||||
value : 'auto',
|
||||
choices : ['auto', 'true', 'false'],
|
||||
description : 'Build with LLVM support.'
|
||||
)
|
||||
option(
|
||||
|
Loading…
Reference in New Issue
Block a user