qb: Enable HAVE_SLANG, HAVE_GLSLANG and HAVE_SPRIV_CROSS dynamically.

May help issue https://github.com/libretro/RetroArch/issues/9160.
This commit is contained in:
orbea 2019-07-21 15:06:20 -07:00
parent ccfea4007a
commit de7bf62f86
3 changed files with 16 additions and 7 deletions

View File

@ -525,16 +525,23 @@ check_enabled SLANG GLSLANG glslang 'slang is' false
check_enabled SLANG SPIRV_CROSS SPIRV-Cross 'slang is' false
check_enabled SLANG OPENGL_CORE 'OpenGL core' 'slang is' false
check_enabled SLANG VULKAN vulkan 'slang is' false
check_enabled SLANG METAL metal 'slang is' false
check_enabled GLSLANG SLANG slang 'glslang is' false
check_enabled GLSLANG SPIRV_CROSS SPIRV-Cross 'glslang is' false
check_enabled GLSLANG OPENGL_CORE 'OpenGL core' 'glslang is' false
check_enabled GLSLANG VULKAN vulkan 'glslang is' false
check_enabled GLSLANG METAL metal 'glslang is' false
check_enabled SPIRV_CROSS SLANG slang 'SPIRV-Cross is' false
check_enabled SPIRV_CROSS GLSLANG glslang 'SPIRV-Cross is' false
check_enabled SPIRV_CROSS OPENGL_CORE 'OpenGL core' 'SPIRV-Cross is' false
check_enabled SPIRV_CROSS VULKAN vulkan 'SPIRV-Cross is' false
check_enabled SPIRV_CROSS METAL metal 'SPIRV-Cross is' false
check_enabled 'OPENGL_CORE METAL VULKAN' SLANG slang '' user
check_enabled 'OPENGL_CORE METAL VULKAN' GLSLANG glslang '' user
check_enabled 'OPENGL_CORE METAL VULKAN' SPIRV_CROSS SPIRV-Cross '' user
check_macro NEON __ARM_NEON__

View File

@ -153,11 +153,11 @@ HAVE_DRMINGW=no # DrMingw exception handler
HAVE_EASTEREGG=yes # Easter egg
HAVE_CDROM=auto # CD-ROM support
HAVE_GLSL=yes # GLSL shaders support
HAVE_SLANG=yes # slang support
HAVE_SLANG=auto # slang support
C89_SLANG=no
HAVE_GLSLANG=yes # glslang support (requires C++11)
HAVE_GLSLANG=auto # glslang support (requires C++11)
C89_GLSLANG=no
HAVE_SPIRV_CROSS=yes # SPIRV-Cross support (requires C++11)
HAVE_SPIRV_CROSS=auto # SPIRV-Cross support (requires C++11)
C89_SPIRV_CROSS=no
HAVE_METAL=no # Metal support (macOS-only)
C89_METAL=no

View File

@ -52,14 +52,14 @@ check_compiler()
# $2 = USER_$2 [Enabled feature]
# $3 = lib
# $4 = feature
# $5 = enable lib when true [checked only if non-empty]
# $5 = enable lib when true, disable errors with 'user' [checked only if non-empty]
check_enabled()
{ setval="$(eval "printf %s \"\$HAVE_$2\"")"
for val in $(printf %s "$1"); do
tmpvar="$(eval "printf %s \"\$HAVE_$val\"")"
if [ "$tmpvar" != 'no' ]; then
if [ "$setval" != 'no' ] && [ "${5:-}" = 'true' ]; then
if [ "$setval" != 'no' ] && match "${5:-}" true user; then
eval "HAVE_$2=yes"
fi
return 0
@ -71,14 +71,16 @@ check_enabled()
if [ "$tmpval" != 'yes' ]; then
if [ "$setval" != 'no' ]; then
eval "HAVE_$2=no"
if [ "${5:-}" != 'true' ]; then
if ! match "${5:-}" true user; then
die : "Notice: $4 disabled, $3 support will also be disabled."
fi
fi
return 0
fi
die 1 "Error: $4 disabled and forced to build with $3 support."
if [ "${5:-}" != 'user' ]; then
die 1 "Error: $4 disabled and forced to build with $3 support."
fi
}
# check_platform: