libpurple: Generate purple.h includes with meson headers list

Mon, 10 Dec 2018 23:03:38 -0600

author
Mike Ruprecht <cmaiku@gmail.com>
date
Mon, 10 Dec 2018 23:03:38 -0600
changeset 39401
80193d055f1c
parent 39400
34275a486210
child 39402
341d90fb856e

libpurple: Generate purple.h includes with meson headers list

This patch replaces purple.h's hardcoded list of includes with a list
generated from meson's list of headers. This way if any headers are
added or removed, the list will be updated automatically.

One notable difference is that this changes includes in purple.h from
'example.h' to 'libpurple/example.h'. This was done because some
plugins have headers which are named the same as libpurple/ headers,
which weren't previously included in 'purple.h'. Including them simply
as the base name caused the plugin local header to be included
instead and the build to fail. Adding the libpurple/ directory to
the include statement fixes this.

libpurple/meson.build file | annotate | diff | comparison | revisions
libpurple/purple.h.in file | annotate | diff | comparison | revisions
--- a/libpurple/meson.build	Tue Dec 11 00:22:00 2018 -0600
+++ b/libpurple/meson.build	Mon Dec 10 23:03:38 2018 -0600
@@ -224,6 +224,12 @@
 enums_c = enums[0]
 enums_h = enums[1]
 
+PURPLE_H_INCLUDES = []
+foreach header : purple_coreheaders + purple_mediaheaders + ['version.h', 'enums.h']
+	PURPLE_H_INCLUDES += '#include <libpurple/@0@>'.format(header)
+endforeach
+purple_h_conf.set('PURPLE_H_INCLUDES', '\n'.join(PURPLE_H_INCLUDES))
+
 purple_h = configure_file(input : 'purple.h.in',
                           output : 'purple.h',
                           configuration : purple_h_conf,
--- a/libpurple/purple.h.in	Tue Dec 11 00:22:00 2018 -0600
+++ b/libpurple/purple.h.in	Mon Dec 10 23:03:38 2018 -0600
@@ -49,54 +49,6 @@
 
 @PLUGINS_DEFINE@
 
-#include <accounts.h>
-#include <accountopt.h>
-#include <buddylist.h>
-#include <buddyicon.h>
-#include <circularbuffer.h>
-#include <cmds.h>
-#include <connection.h>
-#include <conversations.h>
-#include <core.h>
-#include <debug.h>
-#include <enums.h>
-#include <eventloop.h>
-#include <idle.h>
-#include <log.h>
-#include <media.h>
-#include <mediamanager.h>
-#include <mime.h>
-#include <nat-pmp.h>
-#include <network.h>
-#include <notify.h>
-#include <plugins.h>
-#include <pluginpref.h>
-#include <pounce.h>
-#include <prefs.h>
-#include <presence.h>
-#include <proxy.h>
-#include <protocols.h>
-#include <request.h>
-#include <roomlist.h>
-#include <savedstatuses.h>
-#include <server.h>
-#include <signals.h>
-#include <smiley.h>
-#include <sound.h>
-#include <sound-theme.h>
-#include <sound-theme-loader.h>
-#include <sslconn.h>
-#include <status.h>
-#include <stringref.h>
-#include <stun.h>
-#include <theme.h>
-#include <theme-loader.h>
-#include <theme-manager.h>
-#include <upnp.h>
-#include <util.h>
-#include <version.h>
-#include <whiteboard.h>
-#include <xfer.h>
-#include <xmlnode.h>
+@PURPLE_H_INCLUDES@
 
 #endif

mercurial