aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r--mesonbuild/interpreter.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index cd5db62..4ee0485 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -1938,8 +1938,14 @@ class Interpreter(InterpreterBase):
try:
dep = self.subprojects[dirname].get_variable_method([varname], {})
except KeyError:
- raise InvalidCode('Fallback variable {!r} in the subproject '
- '{!r} does not exist'.format(varname, dirname))
+ if kwargs.get('required', True):
+ m = 'Fallback variable {!r} in the subproject {!r} does not exist'
+ raise DependencyException(m.format(varname, dirname))
+ # If the dependency is not required, don't raise an exception
+ mlog.log('Also couldn\'t find the dependency', mlog.bold(name),
+ 'in the fallback subproject',
+ mlog.bold(os.path.join(self.subproject_dir, dirname)))
+ return None
if not isinstance(dep, DependencyHolder):
raise InvalidCode('Fallback variable {!r} in the subproject {!r} is '
'not a dependency object.'.format(varname, dirname))