diff options
author | Nirbheek Chauhan <nirbheek@centricular.com> | 2019-04-13 11:25:58 +0530 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek@centricular.com> | 2019-04-13 11:25:58 +0530 |
commit | 26cb9bb8df0d1a759d4d62abf0877e5fe3fd6bf6 (patch) | |
tree | 0bc1389fc92ce3e5f3e11f1da8951b236d0e768a /mesonbuild/build.py | |
parent | eaed4aecbe218018feed73192e6fc25e54034d53 (diff) | |
download | meson-warn-env-ops-dont-stack.tar.gz |
interpreter: Warn when environment() ops are overridenwarn-env-ops-dont-stack
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 020c47b58..dae94b6ed 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) |