aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
diff options
context:
space:
mode:
authorMathieu Duponchelle <mathieu@centricular.com>2019-05-26 15:13:21 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2019-05-28 20:26:54 +0300
commit12a82e763d43f6280572b3f04357f77e50304855 (patch)
treea11ae68d4bd92ca1b84fae7cbc04b0cc238c1bc8 /mesonbuild/interpreter.py
parent20eb948b974a96b3933d42db524fd584cb60c8b7 (diff)
downloadmeson-12a82e763d43f6280572b3f04357f77e50304855.zip
meson-12a82e763d43f6280572b3f04357f77e50304855.tar.gz
meson-12a82e763d43f6280572b3f04357f77e50304855.tar.bz2
interpreter: add fallback argument to subproject.get_variable()
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r--mesonbuild/interpreter.py19
1 files changed, 13 insertions, 6 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index 30be5ae..83fc2f1 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -917,18 +917,25 @@ class SubprojectHolder(InterpreterObject, ObjectHolder):
return self.held_object is not None
@permittedKwargs({})
+ @noArgsFlattening
def get_variable_method(self, args, kwargs):
- if len(args) != 1:
- raise InterpreterException('Get_variable takes one argument.')
+ if len(args) < 1 or len(args) > 2:
+ raise InterpreterException('Get_variable takes one or two arguments.')
if not self.found():
raise InterpreterException('Subproject "%s/%s" disabled can\'t get_variable on it.' % (
self.subproject_dir, self.name))
varname = args[0]
if not isinstance(varname, str):
- raise InterpreterException('Get_variable takes a string argument.')
- if varname not in self.held_object.variables:
- raise InvalidArguments('Requested variable "{0}" not found.'.format(varname))
- return self.held_object.variables[varname]
+ raise InterpreterException('Get_variable first argument must be a string.')
+ try:
+ return self.held_object.variables[varname]
+ except KeyError:
+ pass
+
+ if len(args) == 2:
+ return args[1]
+
+ raise InvalidArguments('Requested variable "{0}" not found.'.format(varname))
header_permitted_kwargs = set([
'required',