Make GTK+ a soft dependancy
authorTristan Van Berkom <tristanvb@openismus.com>
Wed, 16 Jan 2013 09:02:40 +0000 (18:02 +0900)
committerTristan Van Berkom <tristanvb@openismus.com>
Thu, 17 Jan 2013 01:47:24 +0000 (10:47 +0900)
This patch disables building of the user-prompter service and trust-prompt
module if GTK+ is not available, allowing alternative implementations of
the user prompter service to be installed on platforms where GTK+ is not
available.

configure.ac
modules/Makefile.am
modules/trust-prompt/Makefile.am
services/Makefile.am
services/evolution-addressbook-factory/evolution-addressbook-factory.c
services/evolution-calendar-factory/evolution-calendar-factory.c
services/evolution-source-registry/evolution-source-registry.c
services/evolution-user-prompter/Makefile.am
tests/libedataserver/Makefile.am

index 675caca..03be1b1 100644 (file)
@@ -362,7 +362,6 @@ dnl ***********************************
 PKG_CHECK_MODULES(GNOME_PLATFORM,
        [gio-2.0 >= glib_minimum_version
        gmodule-2.0 >= glib_minimum_version
-       gtk+-3.0 >= gdk_minimum_version
        libxml-2.0 >= libxml_minimum_version
        libsoup-2.4 >= soup_minimum_version])
 
@@ -370,6 +369,29 @@ if test x$os_win32 = xno; then
        PKG_CHECK_MODULES(GIO_UNIX, [gio-unix-2.0])
 fi
 
+dnl *************************
+dnl Check for GTK+
+dnl *************************
+AC_ARG_ENABLE([gtk],
+       [AS_HELP_STRING([--enable-gtk],
+       [enable GTK+ (default=yes)])],
+       [enable_gtk=$enableval], [enable_gtk=yes])
+AC_MSG_CHECKING([if GTK+ support is enabled])
+AC_MSG_RESULT([$enable_gtk])
+if test "x$enable_gtk" = xyes; then
+       PKG_CHECK_MODULES([GTK], [gtk+-3.0 >= gdk_minimum_version],,
+       [AC_MSG_ERROR([
+
+       gtk+-3.0 not found (or version < gdk_minimum_version)
+
+       If you want to disable GTK+ support,
+       please append --disable-gtk to configure.
+       ])])
+
+       AC_DEFINE(HAVE_GTK, 1, [Define to 1 if you have the gtk+-3.0 package.])
+fi
+AM_CONDITIONAL(HAVE_GTK, [test x$enable_gtk = xyes])
+
 dnl *******************************
 dnl Check for GNOME Online Accounts
 dnl *******************************
@@ -1659,6 +1681,7 @@ echo "
        Vala bindings:          $enable_vala_bindings
        GNOME Online Accounts   $enable_goa
        Google Contacts         $enable_google
+       GTK+:                   $enable_gtk
        Code coverage (gcov):   $enable_code_coverage
        Strict building:        $enable_strict
 "
index 21e7252..ed946b0 100644 (file)
@@ -4,11 +4,15 @@ if HAVE_GOA
 GNOME_ONLINE_ACCOUNTS_DIR = gnome-online-accounts
 endif
 
+if HAVE_GTK
+TRUST_PROMPT_DIR = trust-prompt
+endif
+
 SUBDIRS = \
        cache-reaper \
        google-backend \
-       trust-prompt \
        yahoo-backend \
+       $(TRUST_PROMPT_DIR) \
        $(GNOME_ONLINE_ACCOUNTS_DIR) \
        $(NULL)
 
index 2e6d62a..eedf305 100644 (file)
@@ -1,16 +1,10 @@
 NULL =
 
-#if USE_GTK
-   TRUST_PROMPT_SOURCES = trust-prompt-gtk.c \
+TRUST_PROMPT_SOURCES = trust-prompt-gtk.c \
                          certificate-viewer.c \
                          certificate-viewer.h
-   TRUST_PROMPT_CFLAGS = $(GNOME_PLATFORM_CFLAGS)
-   TRUST_PROMPT_LIBS = $(GNOME_PLATFORM_LIBS)
-#else
-#   TRUST_PROMPT_SOURCES = trust-prompt-.c
-#   TRUST_PROMPT_CFLAGS = $()
-#   TRUST_PROMPT_LIBS = $()
-#endif
+TRUST_PROMPT_CFLAGS = $(GNOME_PLATFORM_CFLAGS) $(GTK_CFLAGS)
+TRUST_PROMPT_LIBS = $(GNOME_PLATFORM_LIBS) $(GTK_LIBS)
 
 module_LTLIBRARIES = module-trust-prompt.la
 
index f3c8447..affc7c9 100644 (file)
@@ -1,10 +1,14 @@
 NULL =
 
+if HAVE_GTK
+USER_PROMPTER_DIR = evolution-user-prompter
+endif
+
 SUBDIRS = \
        evolution-addressbook-factory \
        evolution-calendar-factory \
        evolution-source-registry \
-       evolution-user-prompter \
+       $(USER_PROMPTER_DIR) \
        $(NULL)
 
 -include $(top_srcdir)/git.mk
index ffb69b7..959095b 100644 (file)
@@ -21,7 +21,7 @@
 #include <stdlib.h>
 #include <glib/gi18n.h>
 
-#ifdef ENABLE_MAINTAINER_MODE
+#if defined (ENABLE_MAINTAINER_MODE) && defined (HAVE_GTK)
 #include <gtk/gtk.h>
 #endif
 
@@ -92,7 +92,7 @@ main (gint argc,
        bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
        bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
 
-#ifdef ENABLE_MAINTAINER_MODE
+#if defined (ENABLE_MAINTAINER_MODE) && defined (HAVE_GTK)
        /* This is only to load gtk-modules, like
         * bug-buddy's gnomesegvhandler, if possible */
        gtk_init_check (&argc, &argv);
index a80731b..ee40da7 100644 (file)
@@ -21,7 +21,7 @@
 #include <stdlib.h>
 #include <glib/gi18n.h>
 
-#ifdef ENABLE_MAINTAINER_MODE
+#if defined (ENABLE_MAINTAINER_MODE) && defined (HAVE_GTK)
 #include <gtk/gtk.h>
 #endif
 
@@ -96,7 +96,7 @@ main (gint argc,
        bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
        bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
 
-#ifdef ENABLE_MAINTAINER_MODE
+#if defined (ENABLE_MAINTAINER_MODE) && defined (HAVE_GTK)
        /* This is only to load gtk-modules, like
         * bug-buddy's gnomesegvhandler, if possible. */
        gtk_init_check (&argc, &argv);
index 567052c..d4cc15c 100644 (file)
@@ -21,7 +21,7 @@
 #include <stdlib.h>
 #include <glib/gi18n.h>
 
-#ifdef ENABLE_MAINTAINER_MODE
+#if defined (ENABLE_MAINTAINER_MODE) && defined (HAVE_GTK)
 #include <gtk/gtk.h>
 #endif
 
@@ -48,7 +48,7 @@ main (gint argc,
        bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
        bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
 
-#ifdef ENABLE_MAINTAINER_MODE
+#if defined (ENABLE_MAINTAINER_MODE) && defined (HAVE_GTK)
        /* This is only to load gtk-modules, like
         * bug-buddy's gnomesegvhandler, if possible */
        gtk_init_check (&argc, &argv);
index 8f865cf..941b7a4 100644 (file)
@@ -8,15 +8,9 @@ service_DATA = $(service_in_files:.service.in=.service)
 CLEANFILES = $(service_DATA)
 EXTRA_DIST = $(service_in_files)
 
-#if USE_GTK
-   PROMPT_USER_SOURCES = prompt-user-gtk.c
-   PROMPT_USER_CFLAGS = $(GNOME_PLATFORM_CFLAGS)
-   PROMPT_USER_LIBS = $(GNOME_PLATFORM_LIBS)
-#else
-#   PROMPT_USER_SOURCES = prompt-user-.c
-#   PROMPT_USER_CFLAGS = $()
-#   PROMPT_USER_LIBS = $()
-#endif
+PROMPT_USER_SOURCES = prompt-user-gtk.c
+PROMPT_USER_CFLAGS = $(GNOME_PLATFORM_CFLAGS) $(GTK_CFLAGS)
+PROMPT_USER_LIBS = $(GNOME_PLATFORM_LIBS) $(GTK_LIBS)
 
 libexec_PROGRAMS = evolution-user-prompter
 
index 7dc05e3..c64aef7 100644 (file)
@@ -4,7 +4,6 @@ NULL =
 
 TESTS = \
        e-source-test \
-       e-user-prompter-test \
        $(NULL)
 
 noinst_PROGRAMS = $(TESTS)
@@ -28,14 +27,16 @@ e_source_test_SOURCES = \
        e-source-test.c \
        $(NULL)
 
-e_user_prompter_test_SOURCES = \
-       e-user-prompter-test.c \
-       $(NULL)
-
 e_source_test_CPPFLAGS = $(test_CPPFLAGS)
 e_source_test_LDADD = $(test_LDADD)
 
-e_user_prompter_test_CPPFLAGS = $(test_CPPFLAGS)
-e_user_prompter_test_LDADD = $(top_builddir)/libebackend/libebackend-1.2.la $(test_LDADD)
+
+if HAVE_GTK
+TESTS += e-user-prompter-test
+
+e_user_prompter_test_SOURCES = e-user-prompter-test.c
+e_user_prompter_test_CPPFLAGS = $(test_CPPFLAGS) $(GTK_CFLAGS)
+e_user_prompter_test_LDADD = $(top_builddir)/libebackend/libebackend-1.2.la $(test_LDADD) $(GTK_LIBS)
+endif
 
 -include $(top_srcdir)/git.mk