[gtk/matthiasc/for-master] gsk: Don't autoinclude backend-specific headers



commit 79e1c66657957eea7f2b63a88c73c0bf09cd3a02
Author: Matthias Clasen <mclasen redhat com>
Date:   Fri Apr 24 21:38:52 2020 -0400

    gsk: Don't autoinclude backend-specific headers
    
    Don't install headers for code that we don't build.
    And don't include those headers in gsk.h.
    
    Just as we do in gdk, require applications to include
    the backend-specific headers they need explicitly.
    
    Update the one affected demo, gtk4-node-editor.

 demos/node-editor/node-editor-window.c |  7 +++++++
 gsk/gsk.h                              |  3 ---
 gsk/meson.build                        | 24 ++++++++++++++----------
 3 files changed, 21 insertions(+), 13 deletions(-)
---
diff --git a/demos/node-editor/node-editor-window.c b/demos/node-editor/node-editor-window.c
index b9b28afd81..7bda0679d4 100644
--- a/demos/node-editor/node-editor-window.c
+++ b/demos/node-editor/node-editor-window.c
@@ -24,6 +24,13 @@
 #include "gtkrendererpaintableprivate.h"
 
 #include "gsk/gskrendernodeparserprivate.h"
+#include "gsk/gl/gskglrenderer.h"
+#ifdef GDK_WINDOWING_BROADWAY
+#include "gsk/broadway/gskbroadwayrenderer.h"
+#endif
+#ifdef GDK_RENDERING_VULKAN
+#include "gsk/vulkan/gskvulkanrenderer.h"
+#endif
 
 #ifndef NODE_EDITOR_SOURCE_DIR
 #define NODE_EDITOR_SOURCE_DIR "." /* Fallback */
diff --git a/gsk/gsk.h b/gsk/gsk.h
index b1ae837946..523b24c81a 100644
--- a/gsk/gsk.h
+++ b/gsk/gsk.h
@@ -27,9 +27,6 @@
 #include <gsk/gsktransform.h>
 
 #include <gsk/gskcairorenderer.h>
-#include <gsk/gl/gskglrenderer.h>
-#include <gsk/broadway/gskbroadwayrenderer.h>
-#include <gsk/vulkan/gskvulkanrenderer.h>
 
 #include <gsk/gsktypes.h>
 #include <gsk/gskenumtypes.h>
diff --git a/gsk/meson.build b/gsk/meson.build
index 8aeae9e7e8..9cc22359cb 100644
--- a/gsk/meson.build
+++ b/gsk/meson.build
@@ -66,17 +66,21 @@ gsk_public_gl_headers = files([
 install_headers(gsk_public_gl_headers, subdir: 'gtk-4.0/gsk/gl')
 gsk_public_headers += gsk_public_gl_headers
 
-gsk_public_broadway_headers = files([
-  'broadway/gskbroadwayrenderer.h'
-])
-install_headers(gsk_public_broadway_headers, subdir: 'gtk-4.0/gsk/broadway')
-gsk_public_headers += gsk_public_broadway_headers
+if get_variable('broadway_enabled')
+  gsk_public_broadway_headers = files([
+    'broadway/gskbroadwayrenderer.h'
+  ])
+  install_headers(gsk_public_broadway_headers, subdir: 'gtk-4.0/gsk/broadway')
+  gsk_public_headers += gsk_public_broadway_headers
+endif
 
-gsk_public_vulkan_headers = files([
-  'vulkan/gskvulkanrenderer.h'
-])
-install_headers(gsk_public_vulkan_headers, subdir: 'gtk-4.0/gsk/vulkan')
-gsk_public_headers += gsk_public_vulkan_headers
+if have_vulkan
+  gsk_public_vulkan_headers = files([
+    'vulkan/gskvulkanrenderer.h'
+  ])
+  install_headers(gsk_public_vulkan_headers, subdir: 'gtk-4.0/gsk/vulkan')
+  gsk_public_headers += gsk_public_vulkan_headers
+endif
 
 gsk_private_vulkan_shaders = []
 # This is an odd split because we use configure_file() below to workaround


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]