diff options
author | Nirbheek Chauhan <nirbheek@centricular.com> | 2019-04-13 11:25:58 +0530 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2019-04-13 22:53:33 +0300 |
commit | 10468b3a28836bc2f8e60cb27af7a7b1c30dc189 (patch) | |
tree | dc2cb6db242169d26da540a13aeca1c55bfad48d /mesonbuild/interpreter.py | |
parent | c04651fe241ebaa4a32e49590416b0bbabebc5fa (diff) | |
download | meson-10468b3a28836bc2f8e60cb27af7a7b1c30dc189.zip meson-10468b3a28836bc2f8e60cb27af7a7b1c30dc189.tar.gz meson-10468b3a28836bc2f8e60cb27af7a7b1c30dc189.tar.bz2 |
interpreter: Warn when environment() ops are overriden
Warn when someone tries to use append() or prepend() on an env var
which already has an operation set on it. People seem to think that
multiple append/prepend operations stack, but they don't.
Closes https://github.com/mesonbuild/meson/issues/5087
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r-- | mesonbuild/interpreter.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 1cf56a2..993ebbd 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -235,7 +235,13 @@ class EnvironmentVariablesHolder(MutableInterpreterObject, ObjectHolder): raise InterpreterException("EnvironmentVariablesHolder methods require at least" "2 arguments, first is the name of the variable and" " following one are values") - self.held_object.envvars.append((method, args[0], args[1:], kwargs)) + # Warn when someone tries to use append() or prepend() on an env var + # which already has an operation set on it. People seem to think that + # multiple append/prepend operations stack, but they don't. + if method != self.held_object.set and self.held_object.has_name(args[0]): + mlog.warning('Overriding previous value of environment variable {!r} with a new one' + .format(args[0]), location=self.current_node) + self.held_object.add_var(method, args[0], args[1:], kwargs) @stringArgs @permittedKwargs({'separator'}) |