[metacity] build: don't build Vulkan compositor if not enabled



commit 3b2f2fb6a8d29efabeb511b9407c6f6762827abd
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Fri Sep 13 15:14:16 2019 +0300

    build: don't build Vulkan compositor if not enabled

 configure.ac                            |  2 ++
 src/Makefile.am                         |  9 +++++++--
 src/compositor/meta-compositor-vulkan.c | 19 +------------------
 src/compositor/meta-compositor.c        |  2 +-
 src/core/display.c                      |  8 ++++++++
 5 files changed, 19 insertions(+), 21 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index d786704c..17fcd1de 100644
--- a/configure.ac
+++ b/configure.ac
@@ -361,6 +361,8 @@ AS_IF([test "x$enable_vulkan" != "xno"], [
   ])
 ], [found_vulkan=no])
 
+AM_CONDITIONAL([HAVE_VULKAN], [test "x$found_vulkan" = "xyes"])
+
 dnl **************************************************************************
 dnl Process .in files
 dnl **************************************************************************
diff --git a/src/Makefile.am b/src/Makefile.am
index 383ae884..b0d8ac53 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -32,8 +32,6 @@ metacity_SOURCES=                             \
        compositor/meta-compositor-private.h    \
        compositor/meta-compositor-xrender.c    \
        compositor/meta-compositor-xrender.h    \
-       compositor/meta-compositor-vulkan.c     \
-       compositor/meta-compositor-vulkan.h     \
        include/meta-compositor.h               \
        core/above-tab-keycode.c                \
        core/constraints.c                      \
@@ -115,6 +113,13 @@ metacity_SOURCES=                          \
        ui/ui-private.h                         \
        $(NULL)
 
+if HAVE_VULKAN
+metacity_SOURCES += \
+       compositor/meta-compositor-vulkan.c \
+       compositor/meta-compositor-vulkan.h \
+       $(NULL)
+endif
+
 bin_PROGRAMS=metacity
 
 metacity_LDADD=@METACITY_LIBS@ $(top_builddir)/libmetacity/libmetacity.la
diff --git a/src/compositor/meta-compositor-vulkan.c b/src/compositor/meta-compositor-vulkan.c
index e23d9dd9..66850f55 100644
--- a/src/compositor/meta-compositor-vulkan.c
+++ b/src/compositor/meta-compositor-vulkan.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2017 Alberts Muktupāvels
+ * Copyright (C) 2017-2019 Alberts Muktupāvels
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,10 +17,8 @@
 
 #include "config.h"
 
-#ifdef HAVE_VULKAN
 #define VK_USE_PLATFORM_XLIB_KHR
 #include <vulkan/vulkan.h>
-#endif
 
 #include "display-private.h"
 #include "meta-compositor-vulkan.h"
@@ -35,7 +33,6 @@ struct _MetaCompositorVulkan
   gboolean                  lunarg_validation_layer;
   gboolean                  debug_report_extension;
 
-#ifdef HAVE_VULKAN
   VkInstance                instance;
 
   VkDebugReportCallbackEXT  debug_callback;
@@ -72,12 +69,10 @@ struct _MetaCompositorVulkan
 
   uint32_t                  n_command_buffers;
   VkCommandBuffer          *command_buffers;
-#endif
 };
 
 G_DEFINE_TYPE (MetaCompositorVulkan, meta_compositor_vulkan, META_TYPE_COMPOSITOR)
 
-#ifdef HAVE_VULKAN
 static void
 destroy_command_buffers (MetaCompositorVulkan *vulkan)
 {
@@ -1124,12 +1119,10 @@ create_semaphore (MetaCompositorVulkan  *vulkan,
 
   return TRUE;
 }
-#endif
 
 static void
 meta_compositor_vulkan_finalize (GObject *object)
 {
-#ifdef HAVE_VULKAN
   MetaCompositorVulkan *vulkan;
 
   vulkan = META_COMPOSITOR_VULKAN (object);
@@ -1183,12 +1176,10 @@ meta_compositor_vulkan_finalize (GObject *object)
       vkDestroyInstance (vulkan->instance, NULL);
       vulkan->instance = VK_NULL_HANDLE;
     }
-#endif
 
   G_OBJECT_CLASS (meta_compositor_vulkan_parent_class)->finalize (object);
 }
 
-#ifdef HAVE_VULKAN
 static gboolean
 not_implemented_cb (MetaCompositorVulkan *vulkan)
 {
@@ -1205,13 +1196,11 @@ not_implemented_cb (MetaCompositorVulkan *vulkan)
 
   return G_SOURCE_REMOVE;
 }
-#endif
 
 static gboolean
 meta_compositor_vulkan_manage (MetaCompositor  *compositor,
                                GError         **error)
 {
-#ifdef HAVE_VULKAN
   MetaCompositorVulkan *vulkan;
 
   vulkan = META_COMPOSITOR_VULKAN (compositor);
@@ -1269,12 +1258,6 @@ meta_compositor_vulkan_manage (MetaCompositor  *compositor,
   g_timeout_add (10000, (GSourceFunc) not_implemented_cb, vulkan);
 
   return TRUE;
-#else
-  g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
-               "Compiled without Vulkan support");
-
-  return FALSE;
-#endif
 }
 
 static void
diff --git a/src/compositor/meta-compositor.c b/src/compositor/meta-compositor.c
index abe81122..3916dc6c 100644
--- a/src/compositor/meta-compositor.c
+++ b/src/compositor/meta-compositor.c
@@ -1,6 +1,6 @@
 /*
  * Copyright (C) 2008 Iain Holmes
- * Copyright (C) 2017 Alberts Muktupāvels
+ * Copyright (C) 2017-2019 Alberts Muktupāvels
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
diff --git a/src/core/display.c b/src/core/display.c
index 1ddb4505..555543f8 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -68,7 +68,10 @@
 
 #include "compositor/meta-compositor-none.h"
 #include "compositor/meta-compositor-xrender.h"
+
+#ifdef HAVE_VULKAN
 #include "compositor/meta-compositor-vulkan.h"
+#endif
 
 #define GRAB_OP_IS_WINDOW_SWITCH(g)                     \
         (g == META_GRAB_OP_KEYBOARD_TABBING_NORMAL  ||  \
@@ -308,7 +311,12 @@ create_compositor (MetaDisplay         *display,
         break;
 
       case META_COMPOSITOR_TYPE_VULKAN:
+#ifdef HAVE_VULKAN
         compositor = meta_compositor_vulkan_new (display, error);
+#else
+        g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+                             "Compiled without Vulkan support");
+#endif
         break;
 
       default:


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