summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElliott Sales de Andrade <qulogic@pidgin.im>2017-07-06 19:40:28 -0400
committerElliott Sales de Andrade <qulogic@pidgin.im>2017-07-06 19:40:28 -0400
commita68518ba35e740e4807d8b0e9bc68608d85d5067 (patch)
tree1e25ee2967e9bd2e194bf4092aee788c421374e4
parent4d424dda263ee4085ca286e499af7a0d9a1b08e5 (diff)
downloadpidgin-a68518ba35e740e4807d8b0e9bc68608d85d5067.tar.gz
Add meson arguments to About dialog.
-rw-r--r--meson.build7
-rwxr-xr-xmkmesonconf.py67
-rw-r--r--pidgin/gtkdialogs.c6
3 files changed, 78 insertions, 2 deletions
diff --git a/meson.build b/meson.build
index df858de22a..ea28cb3ae4 100644
--- a/meson.build
+++ b/meson.build
@@ -121,8 +121,11 @@ pkg_conf.set('sysconfdir', join_paths('${prefix}', get_option('sysconfdir')))
sedpath = find_program('sed')
-# Storing configure arguments
-# conf.set('CONFIG_ARGS', ac_configure_args)
+# Storing build arguments
+if meson.version().version_compare('>=0.40.0')
+ meson.add_postconf_script('mkmesonconf.py')
+ conf.set('HAVE_MESON_CONFIG', true)
+endif
# Checks for programs.
compiler = meson.get_compiler('c')
diff --git a/mkmesonconf.py b/mkmesonconf.py
new file mode 100755
index 0000000000..35834f60ea
--- /dev/null
+++ b/mkmesonconf.py
@@ -0,0 +1,67 @@
+#!/usr/bin/env python3
+#
+# 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
+
+"""
+Produce meson-config.h in a build directory.
+
+This should not really be run manually. It is used by Meson as a
+post-configuration script to create meson-config.h which for now simply
+contains information about the configuration used to create the build
+directory.
+"""
+
+import html
+import json
+import os
+import subprocess
+import sys
+
+
+try:
+ introspect = os.environ['MESONINTROSPECT']
+except KeyError:
+ print('Meson is too old; '
+ 'it does not set MESONINTROSPECT for postconf scripts.')
+ sys.exit(1)
+
+try:
+ build_root = os.environ['MESON_BUILD_ROOT']
+except KeyError:
+ print('Meson is too old; '
+ 'it does not set MESON_BUILD_ROOT for postconf scripts.')
+ sys.exit(1)
+
+
+def tostr(obj):
+ if isinstance(obj, str):
+ return html.escape(repr(obj))
+ else:
+ return repr(obj)
+
+
+conf = subprocess.check_output([introspect, '--buildoptions', build_root],
+ universal_newlines=True)
+conf = json.loads(conf)
+
+settings = ' '.join('{}={}'.format(option['name'], tostr(option['value']))
+ for option in sorted(conf, key=lambda x: x['name']))
+
+with open(os.path.join(build_root, 'meson-config.h'), 'w') as f:
+ f.write('#define MESON_ARGS "{}"'.format(settings))
diff --git a/pidgin/gtkdialogs.c b/pidgin/gtkdialogs.c
index d064c64046..3b1a00c9fa 100644
--- a/pidgin/gtkdialogs.c
+++ b/pidgin/gtkdialogs.c
@@ -23,6 +23,9 @@
#include "internal.h"
#include "pidgin.h"
#include "package_revision.h"
+#ifdef HAVE_MESON_CONFIG
+#include "meson-config.h"
+#endif
#include "debug.h"
#include "notify.h"
@@ -605,6 +608,9 @@ void pidgin_dialogs_buildinfo(void)
#ifdef CONFIG_ARGS /* win32 build doesn't use configure */
g_string_append(str, "<dt>Arguments to <em>./configure</em>:</dt><dd>" CONFIG_ARGS "</dd>");
#endif
+#ifdef MESON_ARGS
+ g_string_append(str, "<dt>Arguments to <em>meson</em>:</dt><dd>" MESON_ARGS "</dd>");
+#endif
#ifndef _WIN32
#ifdef DEBUG