aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2018-09-03 21:49:58 +0530
committerNirbheek Chauhan <nirbheek.chauhan@gmail.com>2018-09-04 22:50:17 -0700
commit68cfe1bb52ffa033796fe87493d0107d77ff9f74 (patch)
tree40b39ceef216c8e045cd83964b6dba58ef9cb265 /mesonbuild/interpreter.py
parent73cbf4113a87aec2821982e9e5613185c63ab78b (diff)
downloadmeson-68cfe1bb52ffa033796fe87493d0107d77ff9f74.zip
meson-68cfe1bb52ffa033796fe87493d0107d77ff9f74.tar.gz
meson-68cfe1bb52ffa033796fe87493d0107d77ff9f74.tar.bz2
Test + fix for not-found dependency fallback version comparison
Fixes: meson.build:6:0: ERROR: Uncomparable version string 'unknown'. This was previously partially fixed in a8694f4b, which only fixed it for cached fallback dependencies.
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r--mesonbuild/interpreter.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index 9bd21e3..98fab7c 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -3069,7 +3069,8 @@ root and issuing %s.
msg.append(traceback.format_exc())
mlog.log(*msg)
return None
- dep = self.get_subproject_dep(name, dirname, varname, kwargs.get('required', True))
+ required = kwargs.get('required', True)
+ dep = self.get_subproject_dep(name, dirname, varname, required)
if not dep:
return None
subproj_path = os.path.join(self.subproject_dir, dirname)
@@ -3077,6 +3078,12 @@ root and issuing %s.
if 'version' in kwargs:
wanted = kwargs['version']
found = dep.version_method([], {})
+ # Don't do a version check if the dependency is not found and not required
+ if not dep.found_method([], {}) and not required:
+ subproj_path = os.path.join(self.subproject_dir, dirname)
+ mlog.log('Dependency', mlog.bold(display_name), 'from subproject',
+ mlog.bold(subproj_path), 'found:', mlog.red('NO'))
+ return dep
if not self.check_subproject_version(wanted, found):
mlog.log('Subproject', mlog.bold(subproj_path), 'dependency',
mlog.bold(display_name), 'version is', mlog.bold(found),