diff options
author | Elliott Sales de Andrade <qulogic@pidgin.im> | 2017-07-06 19:40:28 -0400 |
---|---|---|
committer | Elliott Sales de Andrade <qulogic@pidgin.im> | 2017-07-06 19:40:28 -0400 |
commit | a68518ba35e740e4807d8b0e9bc68608d85d5067 (patch) | |
tree | 1e25ee2967e9bd2e194bf4092aee788c421374e4 | |
parent | 4d424dda263ee4085ca286e499af7a0d9a1b08e5 (diff) | |
download | pidgin-a68518ba35e740e4807d8b0e9bc68608d85d5067.tar.gz |
Add meson arguments to About dialog.
-rw-r--r-- | meson.build | 7 | ||||
-rwxr-xr-x | mkmesonconf.py | 67 | ||||
-rw-r--r-- | pidgin/gtkdialogs.c | 6 |
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 |