[PATCH vkd3d 3/3] build: Improve SPIR-V headers detection.
Józef Kucia
joseph.kucia at gmail.com
Mon Apr 16 05:16:23 CDT 2018
From: Józef Kucia <jkucia at codeweavers.com>
Allows building with Vulkan SDK.
Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
configure.ac | 12 +++++++++---
libs/vkd3d-shader/spirv.c | 19 +++++++++++++------
2 files changed, 22 insertions(+), 9 deletions(-)
diff --git a/configure.ac b/configure.ac
index 820783a3b4fa..2b8249eebd10 100644
--- a/configure.ac
+++ b/configure.ac
@@ -48,11 +48,17 @@ VKD3D_CHECK_MINGW32_PROG([CROSSCC32], [CROSSTARGET32], [no])
VKD3D_CHECK_MINGW64_PROG([CROSSCC64], [CROSSTARGET64], [no])
dnl Check for headers
-AC_CHECK_HEADERS([pthread.h vulkan/vulkan.h spirv/unified1/spirv.h spirv/unified1/GLSL.std.450.h])
+AC_CHECK_HEADERS([pthread.h vulkan/vulkan.h \
+ vulkan/spirv.h vulkan/GLSL.std.450.h \
+ spirv/unified1/spirv.h spirv/unified1/GLSL.std.450.h])
AS_IF([test "x$ac_cv_header_pthread_h" != "xyes"], [AC_MSG_ERROR([pthread.h not found.])])
AS_IF([test "x$ac_cv_header_vulkan_vulkan_h" != "xyes"], [AC_MSG_ERROR([vulkan.h not found.])])
-AS_IF([test "x$ac_cv_header_spirv_unified1_spirv_h" != "xyes"], [AC_MSG_ERROR([spirv.h not found.])])
-AS_IF([test "x$ac_cv_header_spirv_unified1_GLSL_std_450_h" != "xyes"], [AC_MSG_ERROR([GLSL.std.450.h not found.])])
+AS_IF([test "x$ac_cv_header_spirv_unified1_spirv_h" != "xyes" \
+ -a "x$ac_cv_header_vulkan_spirv_h" != "xyes"],
+ [AC_MSG_ERROR([spirv.h not found.])])
+AS_IF([test "x$ac_cv_header_spirv_unified1_GLSL_std_450_h" != "xyes" \
+ -a "x$ac_cv_header_vulkan_GLSL_std_450_h" != "xyes"],
+ [AC_MSG_ERROR([GLSL.std.450.h not found.])])
dnl Check for libraries
m4_ifdef([PKG_PROG_PKG_CONFIG], [PKG_PROG_PKG_CONFIG], [m4_fatal([pkg-config autoconf macros not found.])])
diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c
index 8a1fdf40dae6..f646d540297f 100644
--- a/libs/vkd3d-shader/spirv.c
+++ b/libs/vkd3d-shader/spirv.c
@@ -21,13 +21,20 @@
#include <stdarg.h>
#include <stdio.h>
-#include "spirv/unified1/spirv.h"
-#include "spirv/unified1/GLSL.std.450.h"
-#ifdef HAVE_SPIRV_TOOLS
-# include "spirv-tools/libspirv.h"
-#endif /* HAVE_SPIRV_TOOLS */
+
+#ifdef HAVE_SPIRV_UNIFIED1_SPIRV_H
+# include "spirv/unified1/spirv.h"
+#else
+# include "vulkan/spirv.h"
+#endif /* HAVE_SPIRV_UNIFIED1_SPIRV_H */
+#ifdef HAVE_SPIRV_UNIFIED1_GLSL_STD_450_H
+# include "spirv/unified1/GLSL.std.450.h"
+#else
+# include "vulkan/GLSL.std.450.h"
+#endif /* HAVE_SPIRV_UNIFIED1_GLSL_STD_450_H */
#ifdef HAVE_SPIRV_TOOLS
+# include "spirv-tools/libspirv.h"
static void vkd3d_spirv_dump(const struct vkd3d_shader_code *spirv)
{
@@ -85,7 +92,7 @@ static void vkd3d_spirv_validate(const struct vkd3d_shader_code *spirv)
static void vkd3d_spirv_dump(const struct vkd3d_shader_code *spirv) {}
static void vkd3d_spirv_validate(const struct vkd3d_shader_code *spirv) {}
-#endif /* HAVE_SPIRV_TOOLS */
+#endif /* HAVE_SPIRV_TOOLS */
#define VKD3D_SPIRV_VERSION 0x00010000
#define VKD3D_SPIRV_GENERATOR_ID 18
--
2.16.1
More information about the wine-devel
mailing list