diff options
author | Jan Niklas Hasse <jhasse@bixense.com> | 2017-11-03 17:09:32 +0100 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2017-11-13 21:07:00 +0200 |
commit | c3d143298be0afb8f7a3e75f7d1058d8ed638ee3 (patch) | |
tree | 53662d05cb7be0b8995c06f2a4175eeecd23710b | |
parent | 18b42c5370df1fe74074c73348155cc87fb33c9f (diff) | |
download | meson-c3d143298be0afb8f7a3e75f7d1058d8ed638ee3.zip meson-c3d143298be0afb8f7a3e75f7d1058d8ed638ee3.tar.gz meson-c3d143298be0afb8f7a3e75f7d1058d8ed638ee3.tar.bz2 |
Log instead of raise if Boost module invalid
BOOST_LIBS could become outdated in future versions, which would result
in dependency('boost', modules : [ 'foo' ], required : false) to fail,
although required was set to false. Therefore turn the exception into
log_fail(). If required was set to true, this will still be caught since
is_found remains False.
This also improves logging by printing all invalid module names instead
of only the first one.
-rw-r--r-- | mesonbuild/dependencies/misc.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/mesonbuild/dependencies/misc.py b/mesonbuild/dependencies/misc.py index e65675b..eb20085 100644 --- a/mesonbuild/dependencies/misc.py +++ b/mesonbuild/dependencies/misc.py @@ -66,6 +66,11 @@ class BoostDependency(ExternalDependency): self.is_multithreading = threading == "multi" self.requested_modules = self.get_requested(kwargs) + invalid_modules = [c for c in self.requested_modules if 'boost_' + c not in BOOST_LIBS] + if invalid_modules: + mlog.debug('Invalid Boost modules: ' + ', '.join(invalid_modules)) + self.log_fail() + return self.boost_root = None self.boost_roots = [] @@ -198,8 +203,6 @@ class BoostDependency(ExternalDependency): for c in candidates: if not isinstance(c, str): raise DependencyException('Boost module argument is not a string.') - if 'boost_' + c not in BOOST_LIBS: - raise DependencyException('Dependency {} not found. It is not a valid boost library.'.format(c)) return candidates def validate_requested(self): |