summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorinfirit <[email protected]>2014-03-23 21:17:06 +0100
committerinfirit <[email protected]>2014-03-23 21:29:09 +0100
commit419bf609c5d30cd681979330ac3e8ee995bc7c2e (patch)
treec9c2e3fecf1772ad7ab44909300d0caa9d4e1e73
parent4a840eab5dec7f2cc8300d50019f52eb2db777b4 (diff)
downloadcaja-extensions-419bf609c5d30cd681979330ac3e8ee995bc7c2e.tar.bz2
caja-extensions-419bf609c5d30cd681979330ac3e8ee995bc7c2e.tar.xz
sendto plugin: re-introduce the option to select plugins to build
-rw-r--r--configure.ac168
-rw-r--r--sendto/plugins/Makefile.am11
-rw-r--r--sendto/plugins/caja-burn/Makefile.am5
-rw-r--r--sendto/plugins/emailclient/Makefile.am3
-rw-r--r--sendto/plugins/gajim/Makefile.am3
-rw-r--r--sendto/plugins/pidgin/Makefile.am4
-rw-r--r--sendto/plugins/removable-devices/Makefile.am2
-rw-r--r--sendto/plugins/upnp/Makefile.am3
8 files changed, 178 insertions, 21 deletions
diff --git a/configure.ac b/configure.ac
index fcf02d6..d2726fb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -102,19 +102,173 @@ if test "x$enable_sendto" = "xyes"; then
GUPNP_REQUIRED=0.13
PKG_CHECK_MODULES(SENDTO,
glib-2.0 >= $GLIB_REQUIRED
- gio-2.0 >= $GLIB_REQUIRED
gthread-2.0 >= $GTHREAD_REQUIRED
gmodule-2.0 >= $GLIB_REQUIRED
gobject-2.0 >= $GLIB_REQUIRED
- gtk+-$GTK_API_VERSION >= $GTK_REQUIRED
- dbus-1 >= $DBUS_REQUIRED
- dbus-glib-1 >= $DBUS_GLIB_REQUIRED
- gupnp-1.0 >= $GUPNP_REQUIRED)
+ gtk+-$GTK_API_VERSION >= $GTK_REQUIRED)
AC_SUBST(SENDTO_CFLAGS)
AC_SUBST(SENDTO_LIBS)
- AC_DEFINE_UNQUOTED(GAJIM_SHARE_DIR, "$prefix/share/gajim", [path to gajim share dir])
-fi
+ # The full list of plugins
+ allowed_sendto_plugins="emailclient gajim caja-burn pidgin removable-devices upnp"
+
+ sendto_plugin_error_or_ignore()
+ {
+ if test "${error_on_bad_sendto_plugin}" = "1" ; then
+ AC_MSG_ERROR([$1])
+ else
+ AC_MSG_WARN([$1 (disabling sendto plugin)])
+ fi
+ }
+
+ AC_ARG_WITH([sendto-plugins],
+ [AS_HELP_STRING([--with-sendto-plugins],[Which caja-sendto plugins to compile (default: auto; "all", "autodetect" are valid)])],
+ [], [with_sendto_plugins=autodetect])
+
+ used_sendto_plugins=""
+ used_sendto_plugins2=""
+
+ if test "x${with_sendto_plugins}" = "xautodetect" ; then
+ # Default to all plugins and just ignore them if they won't compile
+ with_sendto_plugins="all"
+ error_on_bad_plugin="0"
+ else
+ # Clean up the plugin list and error if a plugin won't compile
+ with_sendto_plugins=`echo ,"${with_plugins}", | sed -e 's/[[ ,]][[ ,]]*/ /g' -e 's/,$//'`
+ error_on_bad_sendto_plugin="1"
+ fi
+
+ # Iterate through the wanted plugins and weed out bad ones (or error)
+ for wanted_sendto_plugin in ${with_sendto_plugins}; do
+ for allowed_sendto_plugin in ${allowed_sendto_plugins}; do
+ case ${wanted_sendto_plugin} in
+ all)
+ # List all plugins as being used
+ used_sendto_plugins=${allowed_sendto_plugins}
+ ;;
+ autodetect)
+ # List all plugins as being used
+ used_sendto_plugins=${allowed_sendto_plugins}
+ ;;
+ ${allowed_sendto_plugin}) used_sendto_plugins="${used_sendto_plugins} ${wanted_sendto_plugin}";; # List the plugin
+ *) ;;
+ esac
+ done
+ done
+
+ # Check for plugin-specific requirements and error if necessary
+ for sendto_plugin in ${used_sendto_plugins}; do
+ add_sendto_plugin="1"
+
+ case ${sendto_plugin} in
+ emailclient)
+ PKG_CHECK_MODULES(EMAILCLIENT, gio-2.0,
+ enable_emailclient=yes, enable_emailclient=no)
+ if test "${enable_emailclient}" != "yes" ; then
+ sendto_plugin_error_or_ignore "you need gio-2.0 to build the emailclient plugin"
+ add_sendto_plugin="0"
+ fi
+ ;;
+ gajim)
+ AC_ARG_WITH(sendto_gajim,
+ [AS_HELP_STRING(--with-sendto-gajim,[Path to Gajim install prefix])],
+ [GAJIM_PATH="$withval"],[GAJIM_PATH="$prefix"])
+
+ GAJIM_SHARE_DIR="$GAJIM_PATH"/share/gajim
+
+ PKG_CHECK_MODULES(DBUS, dbus-1 >= $DBUS_REQUIRED dbus-glib-1 >= $DBUS_GLIB_REQUIRED,
+ [AC_SUBST(DBUS_CFLAGS)
+ AC_SUBST(DBUS_LIBS)
+ enable_sendto_gajim=yes
+ AC_DEFINE_UNQUOTED(GAJIM_SHARE_DIR, "$GAJIM_SHARE_DIR", [path to gajim share dir])],
+ [enable_sendto_gajim=no])
+
+ if test "${enable_sendto_gajim}" != "yes" ; then
+ sendto_plugin_error_or_ignore "you need gajim and dbus-glib installed for the gajim plugin"
+ add_sendto_plugin="0"
+ fi
+ ;;
+ caja-burn)
+ PKG_CHECK_MODULES(GIO, gio-2.0,
+ enable_burn=yes, enable_burn=no)
+ if test "${enable_burn}" != "yes" ; then
+ sendto_plugin_error_or_ignore "you need gio installed for the caja-burn plugin"
+ add_sendto_plugin="0"
+ fi
+ ;;
+ pidgin)
+ PKG_CHECK_MODULES(PIDGIN, dbus-glib-1 >= $DBUS_GLIB_REQUIRED,
+ enable_pidgin=yes, enable_pidgin=no)
+ if test "${enable_pidgin}" != "yes" ; then
+ sendto_plugin_error_or_ignore "you need dbus-glib to build the pidgin plugin"
+ add_sendto_plugin="0"
+ fi
+ ;;
+ removable-devices)
+ PKG_CHECK_MODULES(GIO, gio-2.0,
+ enable_removable=yes, enable_removable=no)
+ if test "${enable_removable}" != "yes" ; then
+ sendto_plugin_error_or_ignore "you need gio-2.0 to build the removable-devices plugin"
+ add_sendto_plugin="0"
+ fi
+ ;;
+ upnp)
+ PKG_CHECK_MODULES(UPNP, gupnp-1.0 >= $GUPNP_REQUIRED,
+ enable_upnp=yes, enable_upnp=no)
+ if test "${enable_upnp}" != "yes" ; then
+ sendto_plugin_error_or_ignore "you need gupnp installed for the upnp plugin"
+ add_sendto_plugin="0"
+ fi
+ ;;
+ esac
+
+ # Add the specified plugin
+ if test "${add_sendto_plugin}" = "1" ; then
+ used_sendto_plugins2="${used_sendto_plugins2} ${sendto_plugin}"
+ fi
+ done
+
+ ALL_SENDTO_PLUGINS=$allowed_sendto_plugins
+ SENDTO_PLUGINS=$used_sendto_plugins2
+
+ dnl Error out if no plugins will be built
+ if test -z "${SENDTO_PLUGINS}" ; then
+ AC_MSG_ERROR([No sendto plugins will be built, and caja-sendto requires at least one])
+ fi
+
+ AC_MSG_CHECKING([which sendto plugins to compile])
+ AC_MSG_RESULT([$SENDTO_PLUGINS])
+
+ AC_SUBST([ALL_SENDTO_PLUGINS])
+ AC_SUBST([SENDTO_PLUGINS])
+
+ dnl For the pidgin sendto plugin
+ AM_CONDITIONAL(HAVE_SENDTO_PIDGIN, test "x$enable_pidgin" = "xyes")
+
+ dnl For the GIO based plugins
+ enable_nst_common=no
+ if test "x$enable_burn" = "xyes" -o "x$enable_removable" = "xyes"; then
+ enable_nst_common=yes
+ fi
+ AM_CONDITIONAL(HAVE_GIO, test "x$enable_nst_common" = "xyes")
+
+ if test "x${SENDTO_PLUGINS}" != "x" ; then
+ for allowed_sendto_plugin in ${ALL_SENDTO_PLUGINS}; do
+ for sendto_plugin in ${SENDTO_PLUGINS}; do
+ case ${allowed_sendto_plugin} in
+ ${sendto_plugin})
+ AC_MSG_NOTICE([** ${allowed_sendto_plugin} sendto plugin enabled])
+ continue 2
+ ;;
+ *);;
+ esac
+ done
+ AC_MSG_NOTICE([ ${allowed_sendto_plugin} sendto plugin disabled])
+ done
+ else
+ AC_MSG_NOTICE([ No caja-sendto plugins enabled])
+ fi
+fi
AM_CONDITIONAL(ENABLE_SENDTO, test x"$enable_sendto" = "xyes")
# share extension
diff --git a/sendto/plugins/Makefile.am b/sendto/plugins/Makefile.am
index 10097e8..6d17c98 100644
--- a/sendto/plugins/Makefile.am
+++ b/sendto/plugins/Makefile.am
@@ -1,16 +1,13 @@
-SUBDIRS = . \
- caja-burn \
- emailclient \
- gajim \
- pidgin \
- removable-devices \
- upnp
+SUBDIRS = . $(SENDTO_PLUGINS)
+DIST_SUBDIRS = $(ALL_SENDTO_PLUGINS)
NST_COMMON_SOURCES = nst-common.c nst-common.h
+if HAVE_GIO
noinst_LTLIBRARIES = libnstcommon.la
libnstcommon_la_SOURCES = $(NST_COMMON_SOURCES)
libnstcommon_la_CFLAGS = $(SENDTO_CFLAGS)
libnstcommon_la_LIBADD = $(SENDTO_LIBS)
+endif
EXTRA_DIST = $(NST_COMMON_SOURCES)
diff --git a/sendto/plugins/caja-burn/Makefile.am b/sendto/plugins/caja-burn/Makefile.am
index 50c309b..00f95c2 100644
--- a/sendto/plugins/caja-burn/Makefile.am
+++ b/sendto/plugins/caja-burn/Makefile.am
@@ -9,11 +9,12 @@ AM_CPPFLAGS = \
-I$(srcdir)/../ \
$(SENDTO_CFLAGS) \
$(WARN_CFLAGS) \
- $(DISABLE_DEPRECATED)
+ $(DISABLE_DEPRECATED) \
+ $(GIO_CFLAGS)
plugin_LTLIBRARIES = libnstburn.la
libnstburn_la_SOURCES = caja-burn.c
libnstburn_la_LDFLAGS = -module -avoid-version
-libnstburn_la_LIBADD = $(SENDTO_LIBS) $(builddir)/../libnstcommon.la
+libnstburn_la_LIBADD = $(GIO_LIBS) $(SENDTO_LIBS) $(builddir)/../libnstcommon.la
diff --git a/sendto/plugins/emailclient/Makefile.am b/sendto/plugins/emailclient/Makefile.am
index 31ba40e..c4af752 100644
--- a/sendto/plugins/emailclient/Makefile.am
+++ b/sendto/plugins/emailclient/Makefile.am
@@ -7,6 +7,7 @@ AM_CPPFLAGS = \
-I$(top_srcdir)/sendto \
-I$(top_builddir) \
$(SENDTO_CFLAGS) \
+ $(EMAILCLIENT_CFLAGS) \
$(DISABLE_DEPRECATED) \
$(WARN_CFLAGS)
@@ -14,4 +15,4 @@ plugin_LTLIBRARIES = libnstemailclient.la
libnstemailclient_la_SOURCES = emailclient.c
libnstemailclient_la_LDFLAGS = -module -avoid-version
-libnstemailclient_la_LIBADD = $(SENDTO_LIBS)
+libnstemailclient_la_LIBADD = $(SENDTO_LIBS) $(EMAILCLIENT_LIBS)
diff --git a/sendto/plugins/gajim/Makefile.am b/sendto/plugins/gajim/Makefile.am
index 5acd5b0..c39a3c0 100644
--- a/sendto/plugins/gajim/Makefile.am
+++ b/sendto/plugins/gajim/Makefile.am
@@ -7,6 +7,7 @@ AM_CPPFLAGS = \
-I$(top_srcdir)/sendto \
-I$(top_builddir) \
$(SENDTO_CFLAGS) \
+ $(DBUS_CFLAGS) \
$(DISABLE_DEPRECATED) \
$(WARN_CFLAGS)
@@ -14,5 +15,5 @@ plugin_LTLIBRARIES = libnstgajim.la
libnstgajim_la_SOURCES = gajim.c
libnstgajim_la_LDFLAGS = -module -avoid-version
-libnstgajim_la_LIBADD = $(SENDTO_LIBS)
+libnstgajim_la_LIBADD = $(DBUS_LIBS) $(SENDTO_LIBS)
diff --git a/sendto/plugins/pidgin/Makefile.am b/sendto/plugins/pidgin/Makefile.am
index b7f650a..bcfe1d3 100644
--- a/sendto/plugins/pidgin/Makefile.am
+++ b/sendto/plugins/pidgin/Makefile.am
@@ -7,6 +7,8 @@ AM_CPPFLAGS = \
-I$(top_srcdir)/sendto \
-I$(top_builddir) \
$(SENDTO_CFLAGS) \
+ $(NST_EBOOK_CFLAGS) \
+ $(PIDGIN_CFLAGS) \
$(DISABLE_DEPRECATED) \
$(WARN_CFLAGS)
@@ -14,5 +16,5 @@ plugin_LTLIBRARIES = libnstpidgin.la
libnstpidgin_la_SOURCES = pidgin.c
libnstpidgin_la_LDFLAGS = -module -avoid-version
-libnstpidgin_la_LIBADD = $(SENDTO_LIBS)
+libnstpidgin_la_LIBADD = $(PIDGIN_LIBS) $(SENDTO_LIBS)
diff --git a/sendto/plugins/removable-devices/Makefile.am b/sendto/plugins/removable-devices/Makefile.am
index 294ca90..797353b 100644
--- a/sendto/plugins/removable-devices/Makefile.am
+++ b/sendto/plugins/removable-devices/Makefile.am
@@ -15,5 +15,5 @@ plugin_LTLIBRARIES = libnstremovable_devices.la
libnstremovable_devices_la_SOURCES = removable-devices.c
libnstremovable_devices_la_LDFLAGS = -module -avoid-version
-libnstremovable_devices_la_LIBADD = $(SENDTO_LIBS) $(builddir)/../libnstcommon.la
+libnstremovable_devices_la_LIBADD = $(GIO_LIBS) $(SENDTO_LIBS) $(builddir)/../libnstcommon.la
diff --git a/sendto/plugins/upnp/Makefile.am b/sendto/plugins/upnp/Makefile.am
index 4127abd..31a8bd6 100644
--- a/sendto/plugins/upnp/Makefile.am
+++ b/sendto/plugins/upnp/Makefile.am
@@ -7,6 +7,7 @@ AM_CPPFLAGS = \
-I$(top_srcdir)/sendto \
-I$(top_builddir) \
$(SENDTO_CFLAGS) \
+ $(UPNP_CFLAGS) \
$(DISABLE_DEPRECATED) \
$(WARN_CFLAGS)
@@ -14,5 +15,5 @@ plugin_LTLIBRARIES = libnstupnp.la
libnstupnp_la_SOURCES = upnp.c
libnstupnp_la_LDFLAGS = -module -avoid-version
-libnstupnp_la_LIBADD = $(SENDTO_LIBS)
+libnstupnp_la_LIBADD = $(UPNP_LIBS) $(SENDTO_LIBS)