diff options
author | Tristan Partin <tristan@partin.io> | 2021-08-10 18:02:39 -0500 |
---|---|---|
committer | Xavier Claessens <xclaesse@gmail.com> | 2021-08-16 14:05:13 -0400 |
commit | 1dc13e9951a5ce38edb93718ab5ac7b1bf6616d0 (patch) | |
tree | 2e1c5181e7f19634d51c0ea18f16ca27b8797559 /mesonbuild/interpreter/interpreter.py | |
parent | a2f110ff771cf94d9d13d1e1d32de99a74787cf2 (diff) | |
download | meson-1dc13e9951a5ce38edb93718ab5ac7b1bf6616d0.zip meson-1dc13e9951a5ce38edb93718ab5ac7b1bf6616d0.tar.gz meson-1dc13e9951a5ce38edb93718ab5ac7b1bf6616d0.tar.bz2 |
Add unset_variable()
This should be useful for helping to control variable scope within
Meson. CMake has something similar for controlling scope.
Diffstat (limited to 'mesonbuild/interpreter/interpreter.py')
-rw-r--r-- | mesonbuild/interpreter/interpreter.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py index b527115..ab7efa0 100644 --- a/mesonbuild/interpreter/interpreter.py +++ b/mesonbuild/interpreter/interpreter.py @@ -360,6 +360,7 @@ class Interpreter(InterpreterBase, HoldableObject): 'static_library': self.func_static_lib, 'both_libraries': self.func_both_lib, 'test': self.func_test, + 'unset_variable': self.func_unset_variable, 'vcs_tag': self.func_vcs_tag, 'range': self.func_range, }) @@ -2638,6 +2639,16 @@ This will become a hard error in the future.''', location=self.current_node) def func_is_variable(self, node: mparser.BaseNode, args: T.Tuple[str], kwargs: 'TYPE_kwargs') -> bool: return args[0] in self.variables + @FeatureNew('unset_variable', '0.60.0') + @typed_pos_args('unset_variable', str) + @noKwargs + def func_unset_variable(self, node: mparser.BaseNode, args: T.Tuple[str], kwargs: 'TYPE_kwargs') -> None: + varname = args[0] + try: + del self.variables[varname] + except KeyError: + raise InterpreterException(f'Tried to unset unknown variable "{varname}".') + @staticmethod def machine_from_native_kwarg(kwargs: T.Dict[str, T.Any]) -> MachineChoice: native = kwargs.get('native', False) |