diff --git a/Makefile.common b/Makefile.common index 35b8c83c438c..770e72a128ca 100644 --- a/Makefile.common +++ b/Makefile.common @@ -1895,6 +1895,7 @@ endif ifeq ($(HAVE_SPIRV_CROSS), 1) DEFINES += -DHAVE_SPIRV_CROSS +ifeq ($(HAVE_BUILTINSPIRV_CROSS), 1) INCLUDE_DIRS += -I$(DEPS_DIR)/SPIRV-Cross OBJ += $(DEPS_DIR)/SPIRV-Cross/spirv_cross.o OBJ += $(DEPS_DIR)/SPIRV-Cross/spirv_cfg.o @@ -1903,6 +1904,13 @@ ifeq ($(HAVE_SPIRV_CROSS), 1) OBJ += $(DEPS_DIR)/SPIRV-Cross/spirv_msl.o OBJ += $(DEPS_DIR)/SPIRV-Cross/spirv_parser.o OBJ += $(DEPS_DIR)/SPIRV-Cross/spirv_cross_parsed_ir.o +else + CXXFLAGS += $(SPIRV_CROSS_CFLAGS) + LIBS += -lspirv-cross-core \ + -lspirv-cross-glsl \ + -lspirv-cross-reflect \ + -lspirv-cross-msl +endif endif ifeq ($(WANT_WGL), 1) diff --git a/Makefile.wiiu b/Makefile.wiiu index 1c457bcf26bf..0734a92b3c8c 100644 --- a/Makefile.wiiu +++ b/Makefile.wiiu @@ -165,6 +165,7 @@ endif #WANT_IFADDRS = 1 HAVE_OVERLAY = 1 HAVE_SPIRV_CROSS = 1 + HAVE_BUILTINSPIRV_CROSS = 1 HAVE_SLANG = 1 HAVE_DSP_FILTER = 1 HAVE_VIDEO_FILTER = 1 diff --git a/qb/config.libs.sh b/qb/config.libs.sh index 3553b997d5d7..ecf993a64769 100644 --- a/qb/config.libs.sh +++ b/qb/config.libs.sh @@ -33,7 +33,10 @@ CLIB=-lc PTHREADLIB=-lpthread SOCKETLIB=-lc SOCKETHEADER= -INCLUDES='usr/include usr/local/include' +TR='tr' +INCLUDES="$(echo $C_INCLUDE_PATH | $TR ':' ' ') \ +$(echo $CPLUS_INCLUDE_PATH | $TR ':' ' ') \ +usr/include usr/local/include" SORT='sort' EXTRA_GL_LIBS='' VC_PREFIX='' @@ -662,6 +665,7 @@ check_enabled CXX GLSLANG glslang 'The C++ compiler is' false check_enabled CXX SPIRV_CROSS SPIRV-Cross 'The C++ compiler is' false check_enabled GLSLANG BUILTINGLSLANG 'builtin glslang' 'glslang is' true +check_enabled SPIRV_CROSS BUILTINSPIRV_CROSS 'builtin spirv-cross' 'spirv-cross is' true if [ "$HAVE_GLSLANG" != no ]; then check_header cxx GLSLANG \ @@ -694,6 +698,27 @@ if [ "$HAVE_GLSLANG" != no ]; then fi fi +if [ "$HAVE_SPIRV_CROSS" != no ]; then + check_lib cxx SPIRV_CROSS -lspirv-cross-core '' '' 'spirv_cross.hpp' 'spirv_cross' + check_lib cxx SPIRV_CROSS_GLSL -lspirv-cross-glsl + check_lib cxx SPIRV_CROSS_MSL -lspirv-cross-msl + check_lib cxx SPIRV_CROSS_REFLECT -lspirv-cross-reflect + if [ "$HAVE_SPIRV_CROSS" = no ] || + [ "$HAVE_SPIRV_CROSS_GLSL" = no ] || + [ "$HAVE_SPIRV_CROSS_MSL" = no ] || + [ "$HAVE_SPIRV_CROSS_REFLECT" = no ]; then + if [ "$HAVE_BUILTINSPIRV_CROSS" != yes ]; then + die : "Notice: System spirv-cross libraries not found, \ +disabling spirv-cross support" + HAVE_SPIRV_CROSS=no + else + HAVE_SPIRV_CROSS=yes + fi + else + HAVE_SPIRV_CROSS=yes + fi +fi + if [ "$HAVE_CRTSWITCHRES" != no ]; then if [ "$HAVE_CXX11" = 'no' ]; then HAVE_CRTSWITCHRES=no diff --git a/qb/config.params.sh b/qb/config.params.sh index bc6b4381c739..34f34244dadc 100644 --- a/qb/config.params.sh +++ b/qb/config.params.sh @@ -194,6 +194,7 @@ C89_GLSLANG=no HAVE_BUILTINGLSLANG=auto # Bake in glslang support C89_BUILTINGLSLANG=no HAVE_SPIRV_CROSS=auto # SPIRV-Cross support (requires C++11) +HAVE_BUILTINSPIRV_CROSS=auto # Use bundled SPIRV-Cross source C89_SPIRV_CROSS=no HAVE_METAL=no # Metal support (macOS-only) C89_METAL=no