[Mesa-dev] [PATCH v2 3/7] vulkan/wsi: Generate wayland protocol headers separately from EGL

Jason Ekstrand jason at jlekstrand.net
Thu Mar 2 20:30:34 UTC 2017


Previously, we were depending on EGL for generating the headers and
providing the protocol symbols.  However, since neither Vulkan driver
actually wants to link against EGL, this is kind-of pointless.  It also
creates a weird build dependency.
---
 src/amd/vulkan/Makefile.am          |  3 ---
 src/intel/vulkan/Makefile.am        |  7 -------
 src/vulkan/Makefile.am              | 21 +++++++++++++++++----
 src/vulkan/Makefile.sources         |  4 ++++
 src/vulkan/wsi/.gitignore           |  2 ++
 src/vulkan/wsi/wsi_common_wayland.c |  2 +-
 6 files changed, 24 insertions(+), 15 deletions(-)
 create mode 100644 src/vulkan/wsi/.gitignore

diff --git a/src/amd/vulkan/Makefile.am b/src/amd/vulkan/Makefile.am
index 740f2f9..806c297 100644
--- a/src/amd/vulkan/Makefile.am
+++ b/src/amd/vulkan/Makefile.am
@@ -75,15 +75,12 @@ endif
 
 if HAVE_PLATFORM_WAYLAND
 AM_CPPFLAGS += \
-	-I$(top_builddir)/src/egl/wayland/wayland-drm \
-	-I$(top_srcdir)/src/egl/wayland/wayland-drm \
 	$(WAYLAND_CFLAGS) \
 	-DVK_USE_PLATFORM_WAYLAND_KHR
 
 VULKAN_SOURCES += $(VULKAN_WSI_WAYLAND_FILES)
 
 VULKAN_LIB_DEPS += \
-	$(top_builddir)/src/egl/wayland/wayland-drm/libwayland-drm.la \
 	$(WAYLAND_LIBS)
 endif
 
diff --git a/src/intel/vulkan/Makefile.am b/src/intel/vulkan/Makefile.am
index 47cf419..fa594c0 100644
--- a/src/intel/vulkan/Makefile.am
+++ b/src/intel/vulkan/Makefile.am
@@ -63,12 +63,6 @@ AM_CPPFLAGS = \
 	-I$(top_builddir)/src/intel \
 	-I$(top_srcdir)/src/intel
 
-if HAVE_PLATFORM_WAYLAND
-AM_CPPFLAGS += \
-	-I$(top_builddir)/src/egl/wayland/wayland-drm \
-	-I$(top_srcdir)/src/egl/wayland/wayland-drm
-endif
-
 AM_CPPFLAGS += \
 	$(LIBDRM_CFLAGS) \
 	$(INTEL_CFLAGS) \
@@ -119,7 +113,6 @@ AM_CPPFLAGS += \
 VULKAN_SOURCES += $(VULKAN_WSI_WAYLAND_FILES)
 
 VULKAN_LIB_DEPS += \
-	$(top_builddir)/src/egl/wayland/wayland-drm/libwayland-drm.la \
 	$(WAYLAND_LIBS)
 endif
 
diff --git a/src/vulkan/Makefile.am b/src/vulkan/Makefile.am
index f7aca8e..c8a310c 100644
--- a/src/vulkan/Makefile.am
+++ b/src/vulkan/Makefile.am
@@ -49,17 +49,30 @@ VULKAN_LIB_DEPS += $(XCB_DRI3_LIBS) -lX11-xcb
 endif
 
 if HAVE_PLATFORM_WAYLAND
+BUILT_SOURCES += $(VULKAN_WSI_WAYLAND_GENERATED_FILES)
+
+WL_DRM_XML = $(top_srcdir)/src/egl/wayland/wayland-drm/wayland-drm.xml
+
+wsi/wayland-drm-protocol.c : $(WL_DRM_XML)
+	$(MKDIR_GEN)
+	$(AM_V_GEN)$(WAYLAND_SCANNER) code < $< > $@
+
+wsi/wayland-drm-client-protocol.h : $(WL_DRM_XML)
+	$(MKDIR_GEN)
+	$(AM_V_GEN)$(WAYLAND_SCANNER) client-header < $< > $@
+
 AM_CPPFLAGS += \
-	-I$(top_builddir)/src/egl/wayland/wayland-drm \
-	-I$(top_srcdir)/src/egl/wayland/wayland-drm \
 	$(WAYLAND_CFLAGS) \
 	-DVK_USE_PLATFORM_WAYLAND_KHR
 
-VULKAN_WSI_SOURCES += $(VULKAN_WSI_WAYLAND_FILES)
+VULKAN_WSI_SOURCES += \
+	$(VULKAN_WSI_WAYLAND_FILES) \
+	$(VULKAN_WSI_WAYLAND_GENERATED_FILES)
 
 VULKAN_LIB_DEPS += \
-	$(top_builddir)/src/egl/wayland/wayland-drm/libwayland-drm.la \
 	$(WAYLAND_LIBS)
 endif
 
+CLEANFILES = $(BUILT_SOURCES)
+
 libvulkan_wsi_la_SOURCES = $(VULKAN_WSI_SOURCES)
diff --git a/src/vulkan/Makefile.sources b/src/vulkan/Makefile.sources
index 7510d72..63f4ac1 100644
--- a/src/vulkan/Makefile.sources
+++ b/src/vulkan/Makefile.sources
@@ -7,6 +7,10 @@ VULKAN_WSI_WAYLAND_FILES := \
 	wsi/wsi_common_wayland.c \
 	wsi/wsi_common_wayland.h
 
+VULKAN_WSI_WAYLAND_GENERATED_FILES := \
+	wsi/wayland-drm-protocol.c \
+	wsi/wayland-drm-client-protocol.h
+
 VULKAN_WSI_X11_FILES := \
 	wsi/wsi_common_x11.c \
 	wsi/wsi_common_x11.h
diff --git a/src/vulkan/wsi/.gitignore b/src/vulkan/wsi/.gitignore
new file mode 100644
index 0000000..0b7b71b
--- /dev/null
+++ b/src/vulkan/wsi/.gitignore
@@ -0,0 +1,2 @@
+wayland-drm-client-protocol.h
+wayland-drm-protocol.c
diff --git a/src/vulkan/wsi/wsi_common_wayland.c b/src/vulkan/wsi/wsi_common_wayland.c
index 67ac0b8..2e47183 100644
--- a/src/vulkan/wsi/wsi_common_wayland.c
+++ b/src/vulkan/wsi/wsi_common_wayland.c
@@ -22,7 +22,6 @@
  */
 
 #include <wayland-client.h>
-#include <wayland-drm-client-protocol.h>
 
 #include <assert.h>
 #include <stdlib.h>
@@ -33,6 +32,7 @@
 #include <pthread.h>
 
 #include "wsi_common_wayland.h"
+#include "wayland-drm-client-protocol.h"
 
 #include <util/hash_table.h>
 #include <util/u_vector.h>
-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list