[mutter] Make the native backend build-optional
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] Make the native backend build-optional
- Date: Thu, 29 May 2014 16:43:29 +0000 (UTC)
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]