build: featurize shader_transpiler

This commit is contained in:
Andrei Alexeyev 2022-12-14 07:46:28 +01:00
parent 619d82ae36
commit c3a94d7f5b
No known key found for this signature in database
GPG key ID: 72D26128040B9690
3 changed files with 10 additions and 17 deletions

View file

@ -592,7 +592,7 @@ summary({
summary({
'Audio backends' : '@0@ (default: @1@)'.format(', '.join(enabled_audio_backends), get_option('a_default')),
'Rendering backends' : '@0@ (default: @1@)'.format(', '.join(enabled_renderers), default_renderer),
'Shader translation' : get_option('shader_transpiler'),
'Shader translation' : shader_transpiler_enabled,
'ZIP packages' : dep_zip.found(),
'Stages live reload' : stages_live_reload,
}, section : 'Features', bool_yn : true)

View file

@ -115,8 +115,8 @@ option(
option(
'shader_transpiler',
type : 'boolean',
value : false,
type : 'feature',
deprecated : {'true' : 'enabled', 'false' : 'disabled'},
description : 'Enable shader trans-compilation (requires shaderc)'
)

View file

@ -8,21 +8,14 @@ r_shaderlib_src = files(
r_shaderlib_libdeps = []
if get_option('shader_transpiler')
dep_spvc = dependency('spirv-cross-c-shared')
dep_shaderc = dependency('shaderc')
r_shaderlib_src += files(
'lang_spirv.c'
)
opt_shader_transpiler = get_option('shader_transpiler')
dep_spvc = dependency('spirv-cross-c-shared', required : opt_shader_transpiler)
dep_shaderc = dependency('shaderc', required : opt_shader_transpiler)
shader_transpiler_enabled = dep_spvc.found() and dep_shaderc.found()
if shader_transpiler_enabled
r_shaderlib_src += files('lang_spirv.c')
r_shaderlib_libdeps += [dep_shaderc, dep_spvc]
if false and host_machine.system() == 'windows' and get_option('b_lto') and get_option('static') and cc.get_id() == 'gcc'
warning('LTO is known to break glslang on GCC-mingw64 based toolchains')
endif
else
r_shaderlib_src += files(
'lang_spirv_stub.c'
)
r_shaderlib_src += files('lang_spirv_stub.c')
endif