aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r--mesonbuild/interpreter.py16
1 files changed, 8 insertions, 8 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index bf4a1e6..f0e7106 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -2811,10 +2811,9 @@ external dependencies (including libraries) must go to "dependencies".''')
mlog.log('Dependency', mlog.bold(name), 'skipped: feature', mlog.bold(feature), 'disabled')
return DependencyHolder(NotFoundDependency(self.environment))
- if name == '':
- if required:
- raise InvalidArguments('Dependency is both required and not-found')
- return DependencyHolder(NotFoundDependency(self.environment))
+ # writing just "dependency('')" is an error, because it can only fail
+ if name == '' and required and 'fallback' not in kwargs:
+ raise InvalidArguments('Dependency is both required and not-found')
if '<' in name or '>' in name or '=' in name:
raise InvalidArguments('Characters <, > and = are forbidden in dependency names. To specify'
@@ -2840,14 +2839,15 @@ external dependencies (including libraries) must go to "dependencies".''')
exception = None
dep = NotFoundDependency(self.environment)
- # Search for it outside the project
- if self.coredata.wrap_mode != WrapMode.forcefallback or 'fallback' not in kwargs:
+ # Unless a fallback exists and is forced ...
+ if self.coredata.wrap_mode == WrapMode.forcefallback and 'fallback' in kwargs:
+ exception = DependencyException("fallback for %s not found" % name)
+ # ... search for it outside the project
+ elif name != '':
try:
dep = dependencies.find_external_dependency(name, self.environment, kwargs)
except DependencyException as e:
exception = e
- else:
- exception = DependencyException("fallback for %s not found" % name)
# Search inside the projects list
if not dep.found():