meson: Make shader-cache a trillean instead of boolean

So that it can be implicitly disabled on windows, where it doesn't
compile.

v2: - Use an auto-option rather than automagic.
    - fix shader_cache check (== -> !=)
v4: - Use new with_shader_cache instead of get_option('shader-cache')
      elsewhere in the meson build

Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Dylan Baker 2018-04-18 13:20:28 -07:00
parent ddc15fba2b
commit f5eafc2dc6
2 changed files with 17 additions and 6 deletions

View File

@ -775,9 +775,19 @@ if get_option('buildtype') == 'debug'
pre_args += '-DDEBUG'
endif
if get_option('shader-cache')
pre_args += '-DENABLE_SHADER_CACHE'
elif with_amd_vk
with_shader_cache = false
_shader_cache = get_option('shader-cache')
if _shader_cache != 'false'
if host_machine.system() == 'windows'
if _shader_cache == 'true'
error('Shader Cache does not currently work on Windows')
endif
else
pre_args += '-DENABLE_SHADER_CACHE'
with_shader_cache = true
endif
endif
if with_amd_vk and not with_shader_cache
error('Radv requires shader cache support')
endif
@ -1108,7 +1118,7 @@ if cc.has_function('dl_iterate_phdr')
pre_args += '-DHAVE_DL_ITERATE_PHDR'
elif with_intel_vk
error('Intel "Anvil" Vulkan driver requires the dl_iterate_phdr function')
elif with_dri_i965 and get_option('shader-cache')
elif with_dri_i965 and with_shader_cache
error('Intel i965 GL driver requires dl_iterate_phdr when built with shader caching.')
endif

View File

@ -157,8 +157,9 @@ option(
)
option(
'shader-cache',
type : 'boolean',
value : true,
type : 'combo',
value : 'auto',
choices : ['auto', 'true', 'false'],
description : 'Build with on-disk shader cache support'
)
option(