diff options
Diffstat (limited to 'environment.py')
-rwxr-xr-x | environment.py | 144 |
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() |