From 1e644bcb7536976949044710b62ea7d01a6a962f Mon Sep 17 00:00:00 2001 From: Sam Thursfield Date: Tue, 31 Jul 2012 18:26:00 +0200 Subject: [PATCH 1/2] Telepathy Observer: make optional This fixes the build on systems where telepathy-glib is too old such as Fedora 16. --- configure.ac | 40 ++++++++++++++++++++++++++++++++++++---- src/Makefile.am | 7 +++++-- src/zeitgeist-datahub.vala | 3 +++ 3 files changed, 44 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index 5b2a4cc..5d1e641 100644 --- a/configure.ac +++ b/configure.ac @@ -37,6 +37,7 @@ AM_SILENT_RULES([yes]) dnl ============================================== dnl Check settings for optional providers +dnl ============================================== AC_ARG_ENABLE([downloads-monitor], AS_HELP_STRING([--disable-downloads-monitor], [Disables the XDG_DOWNLOAD_DIRECTORY file monitor] @@ -57,22 +58,53 @@ if test "x$with_downloads_monitor" = "xyes"; then else AC_DEFINE([DOWNLOADS_MONITOR_ENABLED], [0], [Is the XDG_DOWNLOAD_DIRECTORY file monitor enabled?]) fi -dnl ============================================== dnl ============================================== dnl Check that we meet the dependencies dnl ============================================== MIN_GLIB_VERSION=2.26.0 -MIN_GTK_VERSION=2.16.0 MIN_ZEITGEIST_VERSION=0.3.18 -MIN_TP_GLIB_VERSION=0.18.0 MIN_JSON_GLIB_VERSION=0.14.2 +MIN_GTK_VERSION=2.16.0 +MIN_TP_GLIB_VERSION=0.18.0 -LIBRARY_MODULES="glib-2.0 >= $MIN_GLIB_VERSION gobject-2.0 gio-2.0 gio-unix-2.0 zeitgeist-1.0 >= $MIN_ZEITGEIST_VERSION telepathy-glib >= $MIN_TP_GLIB_VERSION json-glib-1.0 >= $MIN_JSON_GLIB_VERSION" +LIBRARY_MODULES="glib-2.0 >= $MIN_GLIB_VERSION gobject-2.0 gio-2.0 gio-unix-2.0 zeitgeist-1.0 >= $MIN_ZEITGEIST_VERSION json-glib-1.0 >= $MIN_JSON_GLIB_VERSION" PKG_CHECK_MODULES(DATAHUB_MODULES, [$LIBRARY_MODULES]) PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= $MIN_GTK_VERSION]) +dnl ============================================== +dnl Optional dependencies +dnl ============================================== +AC_ARG_ENABLE([telepathy], + AS_HELP_STRING([--disable-telepathy], + [disable Telepathy [[default=auto]]]),, + [enable_telepathy=auto]) + +if test "x$enable_telepathy" != "xno"; then + PKG_CHECK_MODULES(TELEPATHY_GLIB, + [telepathy-glib >= $MIN_TP_GLIB_VERSION], + [have_telepathy=yes], + [have_telepathy=no]) + + DATAHUB_MODULES_CFLAGS="$DATAHUB_MODULES_CFLAGS $TELEPATHY_GLIB_CFLAGS" + DATAHUB_MODULES_LIBS="$DATAHUB_MODULES_LIBS $TELEPATHY_GLIB_LIBS" + + if test "x$have_telepathy" = "xyes"; then + AC_DEFINE(HAVE_TELEPATHY, [], [Define if we have TELEPATHY_GLIB]) + fi +else + have_telepathy="no (disabled)" +fi + +if test "x$enable_telepathy" = "xyes"; then + if test "x$have_telepathy" != "xyes"; then + AC_MSG_ERROR([Couldn't find telepathy-glib >= $MIN_TP_GLIB_VERSION.]) + fi +fi + +AM_CONDITIONAL(HAVE_TELEPATHY, test "x$have_telepathy" = "xyes") + dnl Expansions dnl AS_AC_EXPAND([PKGDATADIR], [$datadir/$PACKAGE_NAME]) dnl AS_AC_EXPAND([DATADIR], [$datadir]) diff --git a/src/Makefile.am b/src/Makefile.am index de5d208..db09959 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -8,7 +8,6 @@ VALAFLAGS = \ --pkg gio-unix-2.0 \ --pkg gtk+-2.0 \ --pkg json-glib-1.0 \ - --pkg telepathy-glib \ --pkg zeitgeist-1.0 \ glib-extra.vapi \ $(top_srcdir)/config.vapi \ @@ -26,12 +25,16 @@ zeitgeist_datahub_SOURCES = \ downloads-directory-provider.vala \ kde-recent-document-provider.vala \ recent-manager-provider.vala \ - telepathy-observer.vala \ utils.vala \ zeitgeist-datahub.vala \ $(optional_zeitgeist_datahub_SOURCES) \ $(NULL) +if HAVE_TELEPATHY +VALAFLAGS += --pkg telepathy-glib --define=HAVE_TELEPATHY +zeitgeist_datahub_SOURCES += telepathy-observer.vala +endif + xdgautostart_in_files = \ zeitgeist-datahub.desktop.in diff --git a/src/zeitgeist-datahub.vala b/src/zeitgeist-datahub.vala index a336cbb..ab63a10 100644 --- a/src/zeitgeist-datahub.vala +++ b/src/zeitgeist-datahub.vala @@ -111,7 +111,10 @@ public class DataHub : Object, DataHubService */ providers.prepend (new RecentManagerGtk (this)); providers.prepend (new RecentDocumentsKDE (this)); + +#if HAVE_TELEPATHY providers.prepend (new TelepathyObserver (this)); +#endif if (Config.DOWNLOADS_MONITOR_ENABLED) providers.prepend (new DownloadsDirectoryMonitor (this)); -- 1.7.7.6