aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/dependencies.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/dependencies.py')
-rw-r--r--mesonbuild/dependencies.py18
1 files changed, 10 insertions, 8 deletions
diff --git a/mesonbuild/dependencies.py b/mesonbuild/dependencies.py
index f6db323..97aec7e 100644
--- a/mesonbuild/dependencies.py
+++ b/mesonbuild/dependencies.py
@@ -30,8 +30,7 @@ from . import mesonlib
from .environment import detect_cpu_family, for_windows
class DependencyException(MesonException):
- def __init__(self, *args, **kwargs):
- MesonException.__init__(self, *args, **kwargs)
+ '''Exceptions raised while trying to find dependencies'''
class Dependency:
def __init__(self, type_name='unknown'):
@@ -170,17 +169,18 @@ class PkgConfigDependency(Dependency):
if not self.silent:
mlog.log(*found_msg)
if self.required:
- raise DependencyException(
- 'Invalid version of a dependency, needed %s %s found %s.' %
- (name, not_found, self.modversion))
+ m = 'Invalid version of dependency, need {!r} {!r} found {!r}.'
+ raise DependencyException(m.format(name, not_found, self.modversion))
return
found_msg += [mlog.green('YES'), self.modversion]
- if not self.silent:
- mlog.log(*found_msg)
# Fetch cargs to be used while using this dependency
self._set_cargs()
# Fetch the libraries and library paths needed for using this
self._set_libs()
+ # Print the found message only at the very end because fetching cflags
+ # and libs can also fail if other needed pkg-config files aren't found.
+ if not self.silent:
+ mlog.log(*found_msg)
def __repr__(self):
s = '<{0} {1}: {2} {3}>'
@@ -1444,7 +1444,9 @@ def find_external_dependency(name, environment, kwargs):
if mesonlib.is_osx():
fwdep = ExtraFrameworkDependency(name, required)
if required and not fwdep.found():
- raise DependencyException('Dependency "%s" not found' % name)
+ m = 'Dependency {!r} not found, tried Extra Frameworks ' \
+ 'and Pkg-Config:\n\n' + str(pkg_exc)
+ raise DependencyException(m.format(name))
return fwdep
if pkg_exc is not None:
raise pkg_exc