aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2020-04-04 17:39:39 -0400
committerXavier Claessens <xavier.claessens@collabora.com>2020-07-01 09:45:33 -0400
commit56c9e95b04b51def7443a514e5021fa7b70fe8c8 (patch)
tree354b79309dc4c57a58eae71eab273b06a18542e3 /mesonbuild
parent64f36613ef5d54de9d2040da60b225c1ef11140d (diff)
downloadmeson-56c9e95b04b51def7443a514e5021fa7b70fe8c8.zip
meson-56c9e95b04b51def7443a514e5021fa7b70fe8c8.tar.gz
meson-56c9e95b04b51def7443a514e5021fa7b70fe8c8.tar.bz2
Implicit dependency fallback when a subproject wrap or dir exists
Diffstat (limited to 'mesonbuild')
-rw-r--r--mesonbuild/interpreter.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index 487bdd6..053db12 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -3549,6 +3549,14 @@ external dependencies (including libraries) must go to "dependencies".''')
return self.notfound_dependency()
has_fallback = 'fallback' in kwargs
+ if not has_fallback and name:
+ # Add an implicit fallback if we have a wrap file or a directory with the same name.
+ subproject_dir_abs = os.path.join(self.environment.get_source_dir(), self.subproject_dir)
+ wrap_, directory = wrap.get_directory(subproject_dir_abs, name)
+ if wrap_ or os.path.exists(os.path.join(subproject_dir_abs, directory)):
+ kwargs['fallback'] = name
+ has_fallback = True
+
if 'default_options' in kwargs and not has_fallback:
mlog.warning('The "default_options" keyworg argument does nothing without a "fallback" keyword argument.',
location=self.current_node)