aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2014-11-05 23:46:18 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2014-11-05 23:46:18 +0200
commitd73af2558ab5ad8d3a3f09499e55a77c96dc2248 (patch)
tree9c5058d40cfff5615c5a309b3f3c749a87776dd7
parentbe0f357f1d820f31de4f6447cdeb53b6e456aab1 (diff)
downloadmeson-d73af2558ab5ad8d3a3f09499e55a77c96dc2248.zip
meson-d73af2558ab5ad8d3a3f09499e55a77c96dc2248.tar.gz
meson-d73af2558ab5ad8d3a3f09499e55a77c96dc2248.tar.bz2
Pkg-config detection cleanup.
-rw-r--r--dependencies.py27
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