From d73af2558ab5ad8d3a3f09499e55a77c96dc2248 Mon Sep 17 00:00:00 2001 From: Jussi Pakkanen Date: Wed, 5 Nov 2014 23:46:18 +0200 Subject: Pkg-config detection cleanup. --- dependencies.py | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) (limited to 'dependencies.py') diff --git a/dependencies.py b/dependencies.py index 0639edbb1..033ce64d0 100644 --- a/dependencies.py +++ b/dependencies.py @@ -69,14 +69,16 @@ class Dependency(): return [] class PkgConfigDependency(Dependency): - pkgconfig_found = False + pkgconfig_found = None def __init__(self, name, required): Dependency.__init__(self) self.name = name - if not PkgConfigDependency.pkgconfig_found: + if PkgConfigDependency.pkgconfig_found is None: self.check_pkgconfig() + if not PkgConfigDependency.pkgconfig_found: + raise DependencyException('Pkg-config not found.') self.is_found = False p = subprocess.Popen(['pkg-config', '--modversion', name], stdout=subprocess.PIPE, stderr=subprocess.PIPE) @@ -116,14 +118,19 @@ class PkgConfigDependency(Dependency): return self.libs def check_pkgconfig(self): - p = subprocess.Popen(['pkg-config', '--version'], stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - out = p.communicate()[0] - if p.returncode != 0: - raise RuntimeError('Pkg-config executable not found.') - mlog.log('Found pkg-config version:', mlog.bold(out.decode().strip()), - '(%s)' % shutil.which('pkg-config')) - PkgConfigDependency.pkgconfig_found = True + try: + p = subprocess.Popen(['pkg-config', '--version'], stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + out = p.communicate()[0] + if p.returncode == 0: + mlog.log('Found pkg-config:', mlog.bold(shutil.which('pkg-config')), + '(%s)' % out.decode().strip()) + PkgConfigDependency.pkgconfig_found = True + return + except Exception: + pass + PkgConfigDependency.pkgconfig_found = False + mlog.log('Found Pkg-config:', mlog.red('NO')) def found(self): return self.is_found -- cgit v1.2.3