Pkg-config detection cleanup.

pull/18/head
Jussi Pakkanen 10 years ago
parent be0f357f1d
commit d73af2558a
  1. 27
      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

Loading…
Cancel
Save