=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: build: Improve SPIR-V headers detection.

Alexandre Julliard julliard at winehq.org
Mon Apr 16 15:25:58 CDT 2018


Module: vkd3d
Branch: master
Commit: b901d72877389f11ab8e2bea7f158174c9466b6b
URL:    https://source.winehq.org/git/vkd3d.git/?a=commit;h=b901d72877389f11ab8e2bea7f158174c9466b6b

Author: Józef Kucia <jkucia at codeweavers.com>
Date:   Mon Apr 16 12:16:23 2018 +0200

build: Improve SPIR-V headers detection.

Allows building with Vulkan SDK.

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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 820783a..2b8249e 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 8a1fdf4..f646d54 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




More information about the wine-cvs mailing list