diff options
author | Mathieu Duponchelle <mathieu@centricular.com> | 2019-05-26 15:13:21 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2019-05-28 20:26:54 +0300 |
commit | 12a82e763d43f6280572b3f04357f77e50304855 (patch) | |
tree | a11ae68d4bd92ca1b84fae7cbc04b0cc238c1bc8 /mesonbuild/interpreter.py | |
parent | 20eb948b974a96b3933d42db524fd584cb60c8b7 (diff) | |
download | meson-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.py | 19 |
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', |