From 2ed875e1b49d06d677d299534f2f8290bfbd3b35 Mon Sep 17 00:00:00 2001 From: Jon Turney Date: Sun, 31 Dec 2017 16:50:52 +0000 Subject: Consolidate warning location formatting in mlog.warning() Also use .format() rather than % Also use build.environment rather than hardcoding 'meson.build' --- mesonbuild/interpreter.py | 2 +- mesonbuild/mlog.py | 7 +++++++ mesonbuild/mparser.py | 5 +++-- 3 files changed, 11 insertions(+), 3 deletions(-) (limited to 'mesonbuild') diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index e8fb08154..8170357e0 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -1935,7 +1935,7 @@ to directly access options of other subprojects.''') @noKwargs def func_warning(self, node, args, kwargs): argstr = self.get_message_string_arg(node) - mlog.warning('%s in file %s, line %d' % (argstr, os.path.join(node.subdir, 'meson.build'), node.lineno)) + mlog.warning(argstr, location=node) @noKwargs def func_error(self, node, args, kwargs): diff --git a/mesonbuild/mlog.py b/mesonbuild/mlog.py index a0d07ec02..aa2ac20ec 100644 --- a/mesonbuild/mlog.py +++ b/mesonbuild/mlog.py @@ -103,6 +103,13 @@ def log(*args, **kwargs): force_print(*arr, **kwargs) def warning(*args, **kwargs): + from . import environment + + if kwargs.get('location'): + location = kwargs['location'] + del kwargs['location'] + args += ('in file {}, line {}.'.format(os.path.join(location.subdir, environment.build_filename), location.lineno),) + log(yellow('WARNING:'), *args, **kwargs) # Format a list for logging purposes as a string. It separates diff --git a/mesonbuild/mparser.py b/mesonbuild/mparser.py index 782b7a7b1..eb03393fc 100644 --- a/mesonbuild/mparser.py +++ b/mesonbuild/mparser.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -import os, re +import re from .mesonlib import MesonException from . import mlog @@ -368,7 +368,8 @@ class ArgumentNode: def set_kwarg(self, name, value): if name in self.kwargs: - mlog.warning('Keyword argument "%s" defined multiple times in file %s, line %d. This will be an error in future Meson releases.' % (name, os.path.join(self.subdir, 'meson.build'), self.lineno)) + mlog.warning('Keyword argument "{}" defined multiple times'.format(name), location=self) + mlog.warning('This will be an error in future Meson releases.') self.kwargs[name] = value def num_args(self): -- cgit v1.2.3