aboutsummaryrefslogtreecommitdiff
path: root/environment.py
diff options
context:
space:
mode:
Diffstat (limited to 'environment.py')
-rwxr-xr-xenvironment.py144
1 files changed, 0 insertions, 144 deletions
diff --git a/environment.py b/environment.py
index 3eaaa52..2d8ae13 100755
--- a/environment.py
+++ b/environment.py
@@ -451,147 +451,3 @@ class Environment():
unixdirs += glob('/usr/lib/' + plat + '*')
unixdirs.append('/usr/local/lib')
return unixdirs
-
-class Dependency():
- def __init__(self):
- pass
-
- def get_compile_flags(self):
- return []
-
- def get_link_flags(self):
- return []
-
- def found(self):
- return False
-
- def get_sources(self):
- """Source files that need to be added to the target.
- As an example, gtest-all.cc when using GTest."""
- return []
-
-class PackageDependency(Dependency): # Custom detector, not pkg-config.
- def __init__(self, dep):
- Dependency.__init__(self)
- self.dep = dep
-
- def get_link_flags(self):
- return self.dep.get_link_flags()
-
- def get_compile_flags(self):
- return self.dep.get_compile_flags()
-
- def found(self):
- return self.dep.found()
-
- def get_sources(self):
- return self.dep.get_sources()
-
-# This should be an InterpreterObject. Fix it.
-
-class PkgConfigDependency(Dependency):
- pkgconfig_found = False
-
- def __init__(self, name, required):
- Dependency.__init__(self)
- if not PkgConfigDependency.pkgconfig_found:
- self.check_pkgconfig()
-
- self.is_found = False
- p = subprocess.Popen(['pkg-config', '--modversion', name], stdout=subprocess.PIPE,
- stderr=subprocess.PIPE)
- out = p.communicate()[0]
- if p.returncode != 0:
- if required:
- raise EnvironmentException('Required dependency %s not found.' % name)
- self.modversion = 'none'
- self.cflags = []
- self.libs = []
- else:
- self.is_found = True
- self.modversion = out.decode().strip()
- p = subprocess.Popen(['pkg-config', '--cflags', name], stdout=subprocess.PIPE,
- stderr=subprocess.PIPE)
- out = p.communicate()[0]
- if p.returncode != 0:
- raise RuntimeError('Could not generate cflags for %s.' % name)
- self.cflags = out.decode().split()
-
- p = subprocess.Popen(['pkg-config', '--libs', name], stdout=subprocess.PIPE,
- stderr=subprocess.PIPE)
- out = p.communicate()[0]
- if p.returncode != 0:
- raise RuntimeError('Could not generate libs for %s.' % name)
- self.libs = out.decode().split()
-
- def get_modversion(self):
- return self.modversion
-
- def get_compile_flags(self):
- return self.cflags
-
- def get_link_flags(self):
- 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.')
- print('Found pkg-config version %s.' % out.decode().strip())
- PkgConfigDependency.pkgconfig_found = True
-
- def found(self):
- return self.is_found
-
-class ExternalProgram():
- def __init__(self, name, fullpath=None):
- self.name = name
- self.fullpath = fullpath
-
- def found(self):
- return self.fullpath is not None
-
- def get_command(self):
- return self.fullpath
-
- def get_name(self):
- return self.name
-
-class ExternalLibrary(Dependency):
- def __init__(self, name, fullpath=None):
- Dependency.__init__(self)
- self.name = name
- self.fullpath = fullpath
-
- def found(self):
- return self.fullpath is not None
-
- def get_name(self):
- return self.name
-
- def get_link_flags(self):
- if self.found():
- return [self.fullpath]
- return []
-
-def find_external_dependency(name, kwargs):
- required = kwargs.get('required', False)
- if name in dependencies.packages:
- dep = dependencies.packages[name](kwargs)
- if required and not dep.found():
- raise EnvironmentException('Dependency "%s" not found' % name)
- return PackageDependency(dep)
- return PkgConfigDependency(name, required)
-
-def test_pkg_config():
- name = 'gtk+-3.0'
- dep = PkgConfigDependency(name)
- print(dep.get_modversion())
- print(dep.get_compile_flags())
- print(dep.get_link_flags())
-
-if __name__ == '__main__':
- #test_cmd_line_building()
- test_pkg_config()