[gnome-initial-setup] Make Clutter optional
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-initial-setup] Make Clutter optional
- Date: Wed, 18 Jul 2012 22:46:50 +0000 (UTC)
commit d59cb9d93abd398c44cfdc450d589ab35ccb53a9
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Mon Jul 16 20:50:24 2012 -0400
Make Clutter optional
configure.ac | 9 ++++++-
gnome-initial-setup/Makefile.am | 14 +++++++++++-
gnome-initial-setup/gnome-initial-setup.c | 34 ++++++++++++++++++----------
3 files changed, 42 insertions(+), 15 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 34efcc0..a933102 100644
--- a/configure.ac
+++ b/configure.ac
@@ -29,8 +29,6 @@ PKG_CHECK_MODULES(INITIAL_SETUP,
gstreamer-0.10
cheese
cheese-gtk >= 3.3.5
- clutter-gtk-1.0
- clutter-1.0 >= $CLUTTER_REQUIRED_VERSION
fontconfig
geoclue
gweather-3.0
@@ -42,6 +40,13 @@ PKG_CHECK_MODULES(INITIAL_SETUP,
gio-unix-2.0 >= $GLIB_REQUIRED_VERSION
gdmgreeter)
+PKG_CHECK_MODULES(CLUTTER,
+ clutter-gtk-1.0
+ clutter-1.0 >= $CLUTTER_REQUIRED_VERSION,
+ have_clutter=yes, have_clutter=no)
+AM_CONDITIONAL(HAVE_CLUTTER, [test x$have_clutter = xyes])
+AC_SUBST(HAVE_CLUTTER)
+
AC_CHECK_HEADER([pwquality.h], [have_pwquality=yes], [have_pwquality=no])
AM_CONDITIONAL(HAVE_PWQUALITY, [test x$have_pwquality = xyes])
if test x$have_pwquality = xyes ; then
diff --git a/gnome-initial-setup/Makefile.am b/gnome-initial-setup/Makefile.am
index 923a10c..4f8409d 100644
--- a/gnome-initial-setup/Makefile.am
+++ b/gnome-initial-setup/Makefile.am
@@ -11,8 +11,16 @@ AM_CPPFLAGS = \
-DUIDIR="\"$(uidir)\"" \
-DGNOMELOCALEDIR=\""$(datadir)/locale"\"
+if HAVE_CLUTTER
+AM_CPPFLAGS += $(CLUTTER_CFLAGS)
+endif
+
LIBS = $(INITIAL_SETUP_LIBS) -lm
+if HAVE_CLUTTER
+LIBS += $(CLUTTER_LIBS)
+endif
+
libexec_PROGRAMS = gnome-initial-setup
BUILT_SOURCES =
@@ -33,11 +41,15 @@ gnome_initial_setup_SOURCES = \
gnome-initial-setup.c gnome-initial-setup.h \
cc-notebook.c cc-notebook.h \
gis-assistant.c gis-assistant.h gis-assistant-private.h \
- gis-assistant-clutter.c gis-assistant-clutter.h \
gis-assistant-gtk.c gis-assistant-gtk.h \
gis-utils.c gis-utils.h \
$(BUILT_SOURCES)
+if HAVE_CLUTTER
+gnome_initial_setup_SOURCES += \
+ gis-assistant-clutter.c gis-assistant-clutter.h
+endif
+
gnome_initial_setup_LDADD = \
pages/language/libgislanguage.la \
pages/eulas/libgiseulas.la \
diff --git a/gnome-initial-setup/gnome-initial-setup.c b/gnome-initial-setup/gnome-initial-setup.c
index 19b375e..b9627e1 100644
--- a/gnome-initial-setup/gnome-initial-setup.c
+++ b/gnome-initial-setup/gnome-initial-setup.c
@@ -13,7 +13,10 @@
#include <clutter-gtk/clutter-gtk.h>
#include "gis-assistant-gtk.h"
+
+#ifdef HAVE_CLUTTER
#include "gis-assistant-clutter.h"
+#endif
#include "pages/language/gis-language-page.h"
#include "pages/eulas/gis-eula-pages.h"
@@ -121,6 +124,22 @@ gis_add_summary_callback (SetupData *setup,
setup->finals = g_slist_append (setup->finals, closure);
}
+static GType
+get_assistant_type (void)
+{
+#ifdef HAVE_CLUTTER
+ gboolean enable_animations;
+ g_object_get (gtk_settings_get_default (),
+ "gtk-enable-animations", &enable_animations,
+ NULL);
+
+ if (enable_animations)
+ return GIS_TYPE_ASSISTANT_CLUTTER;
+#endif /* HAVE_CLUTTER */
+
+ return GIS_TYPE_ASSISTANT_GTK;
+}
+
/* main {{{1 */
int
@@ -129,8 +148,6 @@ main (int argc, char *argv[])
SetupData *setup;
gchar *filename;
GError *error;
- gboolean enable_animations;
- GType assistant_type;
bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR);
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
@@ -143,10 +160,12 @@ main (int argc, char *argv[])
gtk_init (&argc, &argv);
+#if HAVE_CLUTTER
if (gtk_clutter_init (NULL, NULL) != CLUTTER_INIT_SUCCESS) {
g_critical ("Clutter-GTK init failed");
exit (1);
}
+#endif
error = NULL;
if (g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error) == NULL) {
@@ -163,16 +182,7 @@ main (int argc, char *argv[])
"window-position", GTK_WIN_POS_CENTER_ALWAYS,
NULL);
- g_object_get (gtk_settings_get_default (),
- "gtk-enable-animations", &enable_animations,
- NULL);
-
- if (enable_animations)
- assistant_type = GIS_TYPE_ASSISTANT_CLUTTER;
- else
- assistant_type = GIS_TYPE_ASSISTANT_GTK;
-
- setup->assistant = g_object_new (assistant_type, NULL);
+ setup->assistant = g_object_new (get_assistant_type (), NULL);
gtk_container_add (GTK_CONTAINER (setup->main_window), GTK_WIDGET (setup->assistant));
gtk_widget_show (GTK_WIDGET (setup->assistant));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]