[PATCH resend vkd3d 5/8] build: Make libxcb optional.

Józef Kucia joseph.kucia at gmail.com
Tue Aug 21 11:08:03 CDT 2018


From: Józef Kucia <jkucia at codeweavers.com>

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
 configure.ac                           | 19 ++++++++++++++-----
 libs/vkd3d-utils/vkd3d_utils_main.c    |  2 ++
 libs/vkd3d-utils/vkd3d_utils_private.h | 14 ++++++++------
 3 files changed, 24 insertions(+), 11 deletions(-)

diff --git a/configure.ac b/configure.ac
index ddc6c972008f..b5123b8d11de 100644
--- a/configure.ac
+++ b/configure.ac
@@ -8,6 +8,7 @@ AC_CONFIG_HEADERS(include/config.h)
 AC_ARG_VAR([WIDL], [widl IDL compiler])
 AC_ARG_VAR([CROSSCC32], [32-bit Windows cross compiler])
 AC_ARG_VAR([CROSSCC64], [64-bit Windows cross compiler])
+AC_ARG_WITH([xcb], AS_HELP_STRING([--with-xcb], [Build with XCB library (default: test)]))
 AC_ARG_WITH([spirv-tools], AS_HELP_STRING([--with-spirv-tools],
                                           [Build with SPIRV-Tools library (default: disabled)]))
 AC_ARG_ENABLE([demos], AS_HELP_STRING([--enable-demos], [Build demo programs (default: disabled)]))
@@ -80,13 +81,17 @@ AC_CHECK_LIB([vulkan], [vkGetInstanceProcAddr],
              [VULKAN_LIBS="-lvulkan"],
              [AC_MSG_ERROR([libvulkan not found.])])
 
-HAVE_SPIRV_TOOLS=no
 AS_IF([test "x$with_spirv_tools" = "xyes"],
       [PKG_CHECK_MODULES([SPIRV_TOOLS], [SPIRV-Tools-shared],
-      [AC_DEFINE([HAVE_SPIRV_TOOLS], [1], [Define to 1 if you have SPIRV-Tools.])
-      HAVE_SPIRV_TOOLS=yes])])
+      [AC_DEFINE([HAVE_SPIRV_TOOLS], [1], [Define to 1 if you have SPIRV-Tools.])])],
+      [with_spirv_tools=no])
 
-PKG_CHECK_MODULES([XCB], [xcb xcb-keysyms])
+HAVE_XCB=no
+AS_IF([test "x$with_xcb" != "xno"],
+      [PKG_CHECK_MODULES([XCB], [xcb xcb-keysyms],
+                                [AC_DEFINE([HAVE_XCB], [1], [Define to 1 if you have libxcb.])
+                                HAVE_XCB=yes],
+                                [HAVE_XCB=no])])
 
 dnl Check for functions
 VKD3D_CHECK_FUNC([HAVE_BUILTIN_CLZ], [__builtin_clz], [__builtin_clz(0)])
@@ -96,7 +101,10 @@ VKD3D_CHECK_FUNC([HAVE_SYNC_SUB_AND_FETCH], [__sync_sub_and_fetch], [__sync_sub_
 
 VKD3D_CHECK_PTHREAD_SETNAME_NP
 
+dnl Makefiles
 AS_IF([test "x$enable_demos" != "xyes"], [enable_demos=no])
+AS_IF([test "x$enable_demos" = "xyes" -a "x$HAVE_XCB" != "xyes"],
+      [AC_MSG_ERROR([libxcb is required for demos.])])
 AM_CONDITIONAL([BUILD_DEMOS], [test "x$enable_demos" = "xyes"])
 AM_CONDITIONAL([HAVE_WIDL], [test "x$WIDL" != "xno"])
 AM_CONDITIONAL([HAVE_CROSSTARGET32], [test "x$CROSSTARGET32" != "xno"])
@@ -112,7 +120,8 @@ AS_IF([test "x$CROSSTARGET32" != "xno" -o "x$CROSSTARGET64" != "xno"],
 AS_ECHO(["
   Configuration summary for $PACKAGE $VERSION
 
-  Have SPIRV-Tools: ${HAVE_SPIRV_TOOLS}
+  Have XCB: ${HAVE_XCB}
+  Have SPIRV-Tools: ${with_spirv_tools}
 
   Building demos: ${enable_demos}
 
diff --git a/libs/vkd3d-utils/vkd3d_utils_main.c b/libs/vkd3d-utils/vkd3d_utils_main.c
index 2c4d89a7e38e..8c2503784e37 100644
--- a/libs/vkd3d-utils/vkd3d_utils_main.c
+++ b/libs/vkd3d-utils/vkd3d_utils_main.c
@@ -34,7 +34,9 @@ HRESULT WINAPI D3D12CreateDevice(IUnknown *adapter,
     static const char * const instance_extensions[] =
     {
         VK_KHR_SURFACE_EXTENSION_NAME,
+#ifdef HAVE_XCB
         VK_KHR_XCB_SURFACE_EXTENSION_NAME,
+#endif
     };
     static const char * const device_extensions[] =
     {
diff --git a/libs/vkd3d-utils/vkd3d_utils_private.h b/libs/vkd3d-utils/vkd3d_utils_private.h
index 6aa0df6eeef5..55d5300de0c1 100644
--- a/libs/vkd3d-utils/vkd3d_utils_private.h
+++ b/libs/vkd3d-utils/vkd3d_utils_private.h
@@ -19,17 +19,19 @@
 #ifndef __VKD3D_UTILS_PRIVATE_H
 #define __VKD3D_UTILS_PRIVATE_H
 
+#include "vkd3d_memory.h"
+#include <vkd3d_utils.h>
+
+#define COBJMACROS
+#define NONAMELESSUNION
 #define VK_NO_PROTOTYPES
-#define VK_USE_PLATFORM_XCB_KHR
+#ifdef HAVE_XCB
+# define VK_USE_PLATFORM_XCB_KHR
+#endif
 
 #include <pthread.h>
 #include <vkd3d.h>
 
-#define COBJMACROS
-#define NONAMELESSUNION
-#include "vkd3d_memory.h"
-#include "vkd3d_utils.h"
-
 struct vkd3d_event
 {
     pthread_mutex_t mutex;
-- 
2.16.4




More information about the wine-devel mailing list