aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Turney <jon.turney@dronecode.org.uk>2017-12-31 16:50:52 +0000
committerJon Turney <jon.turney@dronecode.org.uk>2018-01-01 13:20:55 +0000
commit2ed875e1b49d06d677d299534f2f8290bfbd3b35 (patch)
treee71094f1c387a4b34ad5ba5c61d5c85ac776741f
parentd4985d981fea5ec026745efb41be88f25d41bb32 (diff)
downloadmeson-2ed875e1b49d06d677d299534f2f8290bfbd3b35.zip
meson-2ed875e1b49d06d677d299534f2f8290bfbd3b35.tar.gz
meson-2ed875e1b49d06d677d299534f2f8290bfbd3b35.tar.bz2
Consolidate warning location formatting in mlog.warning()
Also use .format() rather than % Also use build.environment rather than hardcoding 'meson.build'
-rw-r--r--mesonbuild/interpreter.py2
-rw-r--r--mesonbuild/mlog.py7
-rw-r--r--mesonbuild/mparser.py5
3 files changed, 11 insertions, 3 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index e8fb081..8170357 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 a0d07ec..aa2ac20 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 782b7a7..eb03393 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):