changeset 21297:5b1acbab99cf

Make purple.h a generated file so plugins can just include this and never worry about defining PURPLE_PLUGINS ever again (unless they build libpurple without plugin support, which would be stupid)
author Stu Tomlinson <stu@nosnilmot.com>
date Sat, 10 Nov 2007 15:49:57 +0000
parents 8fe22cff1779
children 008cfc009d0e
files configure.ac libpurple/Makefile.am libpurple/purple.h libpurple/purple.h.in libpurple/win32/global.mak libpurple/win32/targets.mak
diffstat 6 files changed, 106 insertions(+), 93 deletions(-) [+]
line wrap: on
line diff
--- a/configure.ac	Sat Nov 10 15:41:37 2007 +0000
+++ b/configure.ac	Sat Nov 10 15:49:57 2007 +0000
@@ -2003,9 +2003,12 @@
 if test "x$enable_plugins" = "xyes" ; then
 	AC_DEFINE(PURPLE_PLUGINS, 1, [Define if plugins are enabled.])
 	AM_CONDITIONAL(PLUGINS, true)
+	PLUGINS_DEFINE="#define PURPLE_PLUGINS 1"
 else
 	AM_CONDITIONAL(PLUGINS, false)
+	PLUGINS_DEFINE="#undef PURPLE_PLUGINS"
 fi
+AC_SUBST(PLUGINS_DEFINE)
 
 dnl #######################################################################
 dnl # Check for Cyrus-SASL (for Jabber)
@@ -2272,6 +2275,7 @@
 		   libpurple/protocols/yahoo/Makefile
 		   libpurple/protocols/zephyr/Makefile
 		   libpurple/tests/Makefile
+		   libpurple/purple.h
 		   libpurple/version.h
 		   share/Makefile
 		   share/sounds/Makefile
--- a/libpurple/Makefile.am	Sat Nov 10 15:41:37 2007 +0000
+++ b/libpurple/Makefile.am	Sat Nov 10 15:49:57 2007 +0000
@@ -6,6 +6,7 @@
 		purple-send \
 		purple-send-async \
 		purple-url-handler \
+		purple.h.in \
 		purple.pc.in \
 		purple-uninstalled.pc.in \
 		version.h.in \
@@ -134,7 +135,7 @@
 	xmlnode.h \
 	whiteboard.h
 
-BUILT_SOURCES = version.h
+BUILT_SOURCES = purple.h version.h
 
 if ENABLE_DBUS
 
--- a/libpurple/purple.h	Sat Nov 10 15:41:37 2007 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-/**
- * @file purple.h  Header files and defines
- * This file contains all the necessary preprocessor directives to include
- * libpurple's headers and other preprocessor directives required for plugins
- * or UIs to build.  Inlcuding this file eliminates the need to directly
- * include any other libpurple files.  It will still be necessary for plugins
- * to define @c PURPLE_PLUGINS before including this header.
- *
- * @ingroup core libpurple
- */
-
-/* purple
- *
- * Purple is the legal property of its developers, whose names are too numerous
- * to list here.  Please refer to the COPYRIGHT file distributed with this
- * source distribution.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
- */
-#ifndef _PURPLE_H
-#define _PURPLE_H
-
-#ifndef G_GNUC_NULL_TERMINATED
-#	if     __GNUC__ >= 4
-#		define G_GNUC_NULL_TERMINATED __attribute__((__sentinel__))
-#	else
-#		define G_GNUC_NULL_TERMINATED
-#	endif
-#endif
-
-#include <account.h>
-#include <accountopt.h>
-#include <blist.h>
-#include <buddyicon.h>
-#include <certificate.h>
-#include <cipher.h>
-#include <circbuffer.h>
-#include <cmds.h>
-#include <connection.h>
-#include <conversation.h>
-#include <core.h>
-#include <debug.h>
-#include <desktopitem.h>
-#include <dnsquery.h>
-#include <dnssrv.h>
-#include <eventloop.h>
-#include <ft.h>
-#include <idle.h>
-#include <imgstore.h>
-#include <log.h>
-#include <mime.h>
-#include <nat-pmp.h>
-#include <network.h>
-#include <ntlm.h>
-#include <notify.h>
-#include <plugin.h>
-#include <pluginpref.h>
-#include <pounce.h>
-#include <prefs.h>
-#include <privacy.h>
-#include <proxy.h>
-#include <prpl.h>
-#include <request.h>
-#include <roomlist.h>
-#include <savedstatuses.h>
-#include <server.h>
-#include <signals.h>
-#include <status.h>
-#include <stringref.h>
-#include <stun.h>
-#include <sound.h>
-#include <sslconn.h>
-#include <upnp.h>
-#include <util.h>
-#include <value.h>
-#include <version.h>
-#include <xmlnode.h>
-#include <whiteboard.h>
-
-#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libpurple/purple.h.in	Sat Nov 10 15:49:57 2007 +0000
@@ -0,0 +1,96 @@
+/**
+ * @file purple.h  Header files and defines
+ * This file contains all the necessary preprocessor directives to include
+ * libpurple's headers and other preprocessor directives required for plugins
+ * or UIs to build.  Inlcuding this file eliminates the need to directly
+ * include any other libpurple files.
+ *
+ * @ingroup core libpurple
+ */
+
+/* purple
+ *
+ * Purple is the legal property of its developers, whose names are too numerous
+ * to list here.  Please refer to the COPYRIGHT file distributed with this
+ * source distribution.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
+ */
+
+#ifndef _PURPLE_PURPLE_H_
+#define _PURPLE_PURPLE_H_
+
+#include <glib.h>
+
+#ifndef G_GNUC_NULL_TERMINATED
+#	if     __GNUC__ >= 4
+#		define G_GNUC_NULL_TERMINATED __attribute__((__sentinel__))
+#	else
+#		define G_GNUC_NULL_TERMINATED
+#	endif
+#endif
+
+@PLUGINS_DEFINE@
+
+#include <account.h>
+#include <accountopt.h>
+#include <blist.h>
+#include <buddyicon.h>
+#include <certificate.h>
+#include <cipher.h>
+#include <circbuffer.h>
+#include <cmds.h>
+#include <connection.h>
+#include <conversation.h>
+#include <core.h>
+#include <debug.h>
+#include <desktopitem.h>
+#include <dnsquery.h>
+#include <dnssrv.h>
+#include <eventloop.h>
+#include <ft.h>
+#include <idle.h>
+#include <imgstore.h>
+#include <log.h>
+#include <mime.h>
+#include <nat-pmp.h>
+#include <network.h>
+#include <ntlm.h>
+#include <notify.h>
+#include <plugin.h>
+#include <pluginpref.h>
+#include <pounce.h>
+#include <prefs.h>
+#include <privacy.h>
+#include <proxy.h>
+#include <prpl.h>
+#include <request.h>
+#include <roomlist.h>
+#include <savedstatuses.h>
+#include <server.h>
+#include <signals.h>
+#include <status.h>
+#include <stringref.h>
+#include <stun.h>
+#include <sound.h>
+#include <sslconn.h>
+#include <upnp.h>
+#include <util.h>
+#include <value.h>
+#include <version.h>
+#include <xmlnode.h>
+#include <whiteboard.h>
+
+#endif
--- a/libpurple/win32/global.mak	Sat Nov 10 15:41:37 2007 +0000
+++ b/libpurple/win32/global.mak	Sat Nov 10 15:49:57 2007 +0000
@@ -48,6 +48,7 @@
 PIDGIN_CONFIG_H := $(PIDGIN_TREE_TOP)/config.h
 PURPLE_CONFIG_H := $(PIDGIN_TREE_TOP)/config.h
 PIDGIN_IDLETRACK_DLL := $(PIDGIN_IDLETRACK_TOP)/idletrack.dll
+PURPLE_PURPLE_H := $(PURPLE_TOP)/purple.h
 PURPLE_VERSION_H := $(PURPLE_TOP)/version.h
 PURPLE_DLL := $(PURPLE_TOP)/libpurple.dll
 PURPLE_PERL_DLL := $(PURPLE_PERL_TOP)/perl.dll
--- a/libpurple/win32/targets.mak	Sat Nov 10 15:41:37 2007 +0000
+++ b/libpurple/win32/targets.mak	Sat Nov 10 15:49:57 2007 +0000
@@ -8,6 +8,9 @@
 $(PIDGIN_CONFIG_H): $(PIDGIN_CONFIG_H).mingw $(PIDGIN_TREE_TOP)/configure.ac
 	sed -e 's/@VERSION@/$(PIDGIN_VERSION)/' $@.mingw > $@
 
+$(PURPLE_PURPLE_H): $(PURPLE_PURPLE_H).in
+	sed -e 's/@PLUGINS_DEFINE@/#define PURPLE_PLUGINS 1/; $@.in > $@
+
 $(PURPLE_VERSION_H): $(PURPLE_VERSION_H).in $(PIDGIN_TREE_TOP)/configure.ac
 	cp $@.in $@
 	awk 'BEGIN {FS="[\\(\\)\\[\\]]"} \