aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2020-06-23 21:34:54 -0400
committerXavier Claessens <xavier.claessens@collabora.com>2020-07-01 09:51:57 -0400
commitf7a07ee91a77f68e27b1cf60f5ffcd3296f15b7b (patch)
treebef10623f40b6e48abcce668c712f70fbcca2fb8 /mesonbuild/interpreter.py
parent95c3fee47d75ef493865b3ffbcea7989ef246287 (diff)
downloadmeson-f7a07ee91a77f68e27b1cf60f5ffcd3296f15b7b.zip
meson-f7a07ee91a77f68e27b1cf60f5ffcd3296f15b7b.tar.gz
meson-f7a07ee91a77f68e27b1cf60f5ffcd3296f15b7b.tar.bz2
interpreter: Already configured fallback should be used for optional dep
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r--mesonbuild/interpreter.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index 3e64a67..7896f51 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -3585,13 +3585,15 @@ external dependencies (including libraries) must go to "dependencies".''')
return self.notfound_dependency()
has_fallback = 'fallback' in kwargs
- if not has_fallback and name and required:
+ if not has_fallback and name:
# Add an implicit fallback if we have a wrap file or a directory with the same name,
# but only if this dependency is required. It is common to first check for a pkg-config,
# then fallback to use find_library() and only afterward check again the dependency
- # with a fallback.
+ # with a fallback. If the fallback has already been configured then we have to use it
+ # even if the dependency is not required.
provider = self.environment.wrap_resolver.find_dep_provider(name)
- if provider:
+ dirname = mesonlib.listify(provider)[0]
+ if provider and (required or dirname in self.subprojects):
kwargs['fallback'] = provider
has_fallback = True