Support conditional plugin loader.
authorJim Huang <jserv.tw@gmail.com>
Sat, 7 Oct 2006 18:02:08 +0000 (18:02 +0000)
committerJim Huang <jserv.tw@gmail.com>
Sat, 7 Oct 2006 18:02:08 +0000 (18:02 +0000)
Configuration: --disable-plugins-loading to turn off.

configure.ac
src/plugin.c
src/plugin.h

index ed4afd4..fc3073a 100644 (file)
@@ -19,9 +19,20 @@ PKG_CHECK_MODULES(PACKAGE, [$pkg_modules])
 AC_SUBST(PACKAGE_CFLAGS)
 AC_SUBST(PACKAGE_LIBS)
 
-dnl check for netstats
-PKG_CHECK_MODULES(GCONF, [gconf-2.0], HAVE_GCONF=yes, HAVE_GCONF=no)
-AM_CONDITIONAL(BUILD_NETSTATUS, test x$HAVE_GCONF = xyes)
+AC_ARG_ENABLE([plugins-loading],
+       AS_HELP_STRING([--disable-plugins-loading],
+                      [disable plugin loading (default: enable)]),
+                      plugins_loading=$enableval, plugins_loading="yes")
+
+if test "$plugins_loading" = "no"; then
+       AC_DEFINE(DISABLE_PLUGINS_LOADING, [1], [Disable plugin loading])
+       AM_CONDITIONAL(BUILD_NETSTATUS, no)
+else
+       dnl check for netstatus
+       PKG_CHECK_MODULES(GCONF, [gconf-2.0], HAVE_GCONF=yes, HAVE_GCONF=no)
+       AM_CONDITIONAL(BUILD_NETSTATUS, test x$HAVE_GCONF = xyes)
+fi
+
 
 # Checks for header files.
 AC_PATH_X
index 3329561..0658b8e 100644 (file)
@@ -130,7 +130,8 @@ plugin_load(char *type)
             break;
         }
     }
-#ifndef STATIC_PLUGINS
+
+#ifndef DISABLE_PLUGINS_LOADING
     if (!tmp && g_module_supported()) {
         GModule *m;
         static GString *str = NULL;
@@ -162,7 +163,7 @@ plugin_load(char *type)
         register_plugin_class(pc, 1);
         DBG("4\n");
     }
-#endif
+#endif         /* DISABLE_PLUGINS */
 
     /* nothing was found */
     if (!pc)
index 46341b2..b19c359 100644 (file)
@@ -1,9 +1,7 @@
-
 #ifndef PLUGIN_H
 #define PLUGIN_H
-#include <gmodule.h>
 
-#define STATIC_PLUGINS /* Force the use of static plugins */
+#include <gmodule.h>
 
 #include <gtk/gtk.h>
 #include <gdk/gdk.h>
@@ -48,7 +46,7 @@ void plugin_put(plugin *this);
 int plugin_start(plugin *this);
 void plugin_stop(plugin *this);
 
-#ifdef STATIC_PLUGINS
+/* FIXME: optional definitions */
 #define STATIC_SEPARATOR
 #define STATIC_IMAGE
 #define STATIC_LAUNCHBAR
@@ -62,7 +60,5 @@ void plugin_stop(plugin *this);
 #define STATIC_SPACE
 #define STATIC_ICONS
 #define STATIC_DESKNO
-#endif
-
 
 #endif