diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2014-11-05 23:46:18 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2014-11-05 23:46:18 +0200 |
commit | d73af2558ab5ad8d3a3f09499e55a77c96dc2248 (patch) | |
tree | 9c5058d40cfff5615c5a309b3f3c749a87776dd7 | |
parent | be0f357f1d820f31de4f6447cdeb53b6e456aab1 (diff) | |
download | meson-d73af2558ab5ad8d3a3f09499e55a77c96dc2248.zip meson-d73af2558ab5ad8d3a3f09499e55a77c96dc2248.tar.gz meson-d73af2558ab5ad8d3a3f09499e55a77c96dc2248.tar.bz2 |
Pkg-config detection cleanup.
-rw-r--r-- | dependencies.py | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/dependencies.py b/dependencies.py index 0639edb..033ce64 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 |