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/build.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/build.py')
-rw-r--r-- | mesonbuild/build.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py index 020c47b..dae94b6 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -296,11 +296,20 @@ class ExtractedObjects: class EnvironmentVariables: def __init__(self): self.envvars = [] + # The set of all env vars we have operations for. Only used for self.has_name() + self.varnames = set() def __repr__(self): repr_str = "<{0}: {1}>" return repr_str.format(self.__class__.__name__, self.envvars) + def add_var(self, method, name, args, kwargs): + self.varnames.add(name) + self.envvars.append((method, name, args, kwargs)) + + def has_name(self, name): + return name in self.varnames + def get_value(self, values, kwargs): separator = kwargs.get('separator', os.pathsep) |