[mutter] Make the native backend build-optional



commit 806a66695077672c6848dd14c6a55781c27ba0e6
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Thu May 29 12:11:26 2014 -0400

    Make the native backend build-optional

 configure.ac                |    8 +++++++-
 src/Makefile.am             |   31 ++++++++++++++++++-------------
 src/backends/meta-backend.c |    5 ++++-
 src/backends/meta-cursor.c  |    9 +++++++--
 src/core/events.c           |    7 ++++++-
 src/core/keybindings.c      |    7 +++++++
 src/core/main.c             |    6 ++++++
 7 files changed, 55 insertions(+), 18 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 9a98fad..b845f01 100644
--- a/configure.ac
+++ b/configure.ac
@@ -199,9 +199,15 @@ AS_IF([test "x$WAYLAND_SCANNER" = "xno"],
 AC_SUBST([WAYLAND_SCANNER])
 AC_SUBST(XWAYLAND_PATH)
 
-MUTTER_PC_MODULES="$MUTTER_PC_MODULES clutter-wayland-1.0 clutter-wayland-compositor-1.0 clutter-egl-1.0 
wayland-server >= 1.4.93 libdrm libsystemd"
+MUTTER_PC_MODULES="$MUTTER_PC_MODULES clutter-wayland-1.0 clutter-wayland-compositor-1.0 clutter-egl-1.0 
wayland-server >= 1.4.93"
 PKG_CHECK_MODULES(MUTTER, $MUTTER_PC_MODULES)
 
+PKG_CHECK_MODULES(MUTTER_NATIVE_BACKEND, [libdrm libsystemd], [have_native_backend=yes], 
[have_native_backend=no])
+if test $have_native_backend = yes; then
+   AC_DEFINE([HAVE_NATIVE_BACKEND],[1],[Define if you want to enable the native (KMS) backend based on 
systemd])
+fi
+AM_CONDITIONAL([HAVE_NATIVE_BACKEND],[test $have_native_backend = yes])
+
 PKG_CHECK_EXISTS([xi >= 1.6.99.1],
                  AC_DEFINE([HAVE_XI23],[1],[Define if you have support for XInput 2.3 or greater]))
 
diff --git a/src/Makefile.am b/src/Makefile.am
index bd32860..6779b48 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -11,6 +11,7 @@ INCLUDES=                                                             \
        -DCOGL_ENABLE_EXPERIMENTAL_API                                  \
        -DCOGL_ENABLE_EXPERIMENTAL_2_0_API                              \
        $(MUTTER_CFLAGS)                                                \
+       $(MUTTER_NATIVE_BACKEND_CFLAGS)                                 \
        -I$(srcdir)                                                     \
        -I$(srcdir)/backends                                            \
        -I$(srcdir)/core                                                \
@@ -71,18 +72,6 @@ libmutter_la_SOURCES =                               \
        backends/meta-monitor-manager-dummy.h   \
        backends/edid-parse.c                   \
        backends/edid.h                         \
-       backends/native/meta-backend-native.c           \
-       backends/native/meta-backend-native.h           \
-       backends/native/meta-cursor-renderer-native.c   \
-       backends/native/meta-cursor-renderer-native.h   \
-       backends/native/meta-idle-monitor-native.c      \
-       backends/native/meta-idle-monitor-native.h      \
-       backends/native/meta-monitor-manager-kms.c      \
-       backends/native/meta-monitor-manager-kms.h      \
-       backends/native/meta-launcher.c                 \
-       backends/native/meta-launcher.h                 \
-       backends/native/dbus-utils.c                    \
-       backends/native/dbus-utils.h                    \
        backends/x11/meta-backend-x11.c                 \
        backends/x11/meta-backend-x11.h                 \
        backends/x11/meta-cursor-renderer-x11.c         \
@@ -243,11 +232,27 @@ libmutter_la_SOURCES =                            \
        wayland/window-wayland.c                \
        wayland/window-wayland.h
 
+if HAVE_NATIVE_BACKEND
+libmutter_la_SOURCES +=                                        \
+       backends/native/meta-backend-native.c           \
+       backends/native/meta-backend-native.h           \
+       backends/native/meta-cursor-renderer-native.c   \
+       backends/native/meta-cursor-renderer-native.h   \
+       backends/native/meta-idle-monitor-native.c      \
+       backends/native/meta-idle-monitor-native.h      \
+       backends/native/meta-monitor-manager-kms.c      \
+       backends/native/meta-monitor-manager-kms.h      \
+       backends/native/meta-launcher.c                 \
+       backends/native/meta-launcher.h                 \
+       backends/native/dbus-utils.c                    \
+       backends/native/dbus-utils.h
+endif
+
 nodist_libmutter_la_SOURCES =                  \
        $(mutter_built_sources)
 
 libmutter_la_LDFLAGS = -no-undefined
-libmutter_la_LIBADD  = $(MUTTER_LIBS)
+libmutter_la_LIBADD  = $(MUTTER_LIBS) $(MUTTER_NATIVE_BACKEND_LIBS)
 
 # Headers installed for plugins; introspected information will
 # be extracted into Mutter-<version>.gir
diff --git a/src/backends/meta-backend.c b/src/backends/meta-backend.c
index ddad794..24da0dd 100644
--- a/src/backends/meta-backend.c
+++ b/src/backends/meta-backend.c
@@ -30,7 +30,10 @@
 #include <clutter/clutter.h>
 
 #include "backends/x11/meta-backend-x11.h"
+
+#ifdef HAVE_NATIVE_BACKEND
 #include "backends/native/meta-backend-native.h"
+#endif
 
 static MetaBackend *_backend;
 
@@ -214,7 +217,7 @@ get_backend_type (void)
     return META_TYPE_BACKEND_X11;
 #endif
 
-#if defined(CLUTTER_WINDOWING_EGL)
+#if defined(CLUTTER_WINDOWING_EGL) && defined(HAVE_NATIVE_BACKEND)
   if (clutter_check_windowing_backend (CLUTTER_WINDOWING_EGL))
     return META_TYPE_BACKEND_NATIVE;
 #endif
diff --git a/src/backends/meta-cursor.c b/src/backends/meta-cursor.c
index 828a1ff..c5d90c2 100644
--- a/src/backends/meta-cursor.c
+++ b/src/backends/meta-cursor.c
@@ -28,7 +28,10 @@
 #include "display-private.h"
 #include "screen-private.h"
 #include "meta-backend.h"
+
+#ifdef HAVE_NATIVE_BACKEND
 #include "backends/native/meta-cursor-renderer-native.h"
+#endif
 
 #include <string.h>
 
@@ -171,13 +174,15 @@ meta_cursor_image_load_gbm_buffer (struct gbm_device *gbm,
 static struct gbm_device *
 get_gbm_device (void)
 {
+#ifdef HAVE_NATIVE_BACKEND
   MetaBackend *meta_backend = meta_get_backend ();
   MetaCursorRenderer *renderer = meta_backend_get_cursor_renderer (meta_backend);
 
   if (META_IS_CURSOR_RENDERER_NATIVE (renderer))
     return meta_cursor_renderer_native_get_gbm_device (META_CURSOR_RENDERER_NATIVE (renderer));
-  else
-    return NULL;
+#endif
+
+  return NULL;
 }
 
 static void
diff --git a/src/core/events.c b/src/core/events.c
index 5a69267..c77b604 100644
--- a/src/core/events.c
+++ b/src/core/events.c
@@ -33,9 +33,12 @@
 #include "bell.h"
 #include "workspace-private.h"
 #include "backends/meta-backend.h"
+#include "backends/x11/meta-backend-x11.h"
+
+#ifdef HAVE_NATIVE_BACKEND
 #include "backends/native/meta-backend-native.h"
 #include "backends/native/meta-idle-monitor-native.h"
-#include "backends/x11/meta-backend-x11.h"
+#endif
 
 #include "x11/window-x11.h"
 #include "x11/xprops.h"
@@ -1828,6 +1831,7 @@ meta_display_handle_xevent (MetaDisplay *display,
 static void
 handle_idletime_for_event (const ClutterEvent *event)
 {
+#ifdef HAVE_NATIVE_BACKEND
   /* This is handled by XSync under X11. */
   MetaBackend *backend = meta_get_backend ();
 
@@ -1857,6 +1861,7 @@ handle_idletime_for_event (const ClutterEvent *event)
           meta_idle_monitor_native_reset_idletime (device_monitor);
         }
     }
+#endif /* HAVE_NATIVE_BACKEND */
 }
 
 static gboolean
diff --git a/src/core/keybindings.c b/src/core/keybindings.c
index 8d101ad..09625df 100644
--- a/src/core/keybindings.c
+++ b/src/core/keybindings.c
@@ -57,7 +57,10 @@
 
 #include "wayland/meta-wayland.h"
 #include "backends/x11/meta-backend-x11.h"
+
+#ifdef HAVE_NATIVE_BACKEND
 #include "backends/native/meta-backend-native.h"
+#endif
 
 #define SCHEMA_COMMON_KEYBINDINGS "org.gnome.desktop.wm.keybindings"
 #define SCHEMA_MUTTER_KEYBINDINGS "org.gnome.mutter.keybindings"
@@ -3166,6 +3169,7 @@ handle_set_spew_mark (MetaDisplay     *display,
   meta_verbose ("-- MARK MARK MARK MARK --\n");
 }
 
+#ifdef HAVE_NATIVE_BACKEND
 static void
 handle_switch_vt (MetaDisplay     *display,
                   MetaScreen      *screen,
@@ -3183,6 +3187,7 @@ handle_switch_vt (MetaDisplay     *display,
       g_error_free (error);
     }
 }
+#endif /* HAVE_NATIVE_BACKEND */
 
 /**
  * meta_keybindings_set_custom_handler:
@@ -3475,6 +3480,7 @@ init_builtin_key_bindings (MetaDisplay *display)
                           META_KEYBINDING_ACTION_SET_SPEW_MARK,
                           handle_set_spew_mark, 0);
 
+#ifdef HAVE_NATIVE_BACKEND
   MetaBackend *backend = meta_get_backend ();
   if (META_IS_BACKEND_NATIVE (backend))
     {
@@ -3527,6 +3533,7 @@ init_builtin_key_bindings (MetaDisplay *display)
                               META_KEYBINDING_ACTION_NONE,
                               handle_switch_vt, 7);
     }
+#endif /* HAVE_NATIVE_BACKEND */
 
 #undef REVERSES_AND_REVERSED
 
diff --git a/src/core/main.c b/src/core/main.c
index c0724cc..fca2717 100644
--- a/src/core/main.c
+++ b/src/core/main.c
@@ -181,7 +181,9 @@ static gboolean  opt_replace_wm;
 static gboolean  opt_disable_sm;
 static gboolean  opt_sync;
 static gboolean  opt_wayland;
+#ifdef HAVE_NATIVE_BACKEND
 static gboolean  opt_display_server;
+#endif
 
 static GOptionEntry meta_options[] = {
   {
@@ -225,11 +227,13 @@ static GOptionEntry meta_options[] = {
     N_("Run as a wayland compositor"),
     NULL
   },
+#ifdef HAVE_NATIVE_BACKEND
   {
     "display-server", 0, 0, G_OPTION_ARG_NONE,
     &opt_display_server,
     N_("Run as a full display server, rather than nested")
   },
+#endif
   {NULL}
 };
 
@@ -332,8 +336,10 @@ meta_init (void)
   if (g_getenv ("MUTTER_DEBUG"))
     meta_set_debugging (TRUE);
 
+#if defined(CLUTTER_WINDOWING_EGL) && defined(HAVE_NATIVE_BACKEND)
   if (opt_display_server)
     clutter_set_windowing_backend (CLUTTER_WINDOWING_EGL);
+#endif
 
   meta_set_is_wayland_compositor (opt_wayland);
 


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