From a68518ba35e740e4807d8b0e9bc68608d85d5067 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Thu, 6 Jul 2017 19:40:28 -0400 Subject: Add meson arguments to About dialog. --- mkmesonconf.py | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100755 mkmesonconf.py (limited to 'mkmesonconf.py') 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)) -- cgit v1.2.1