diff options
Diffstat (limited to 'environment.py')
-rwxr-xr-x | environment.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/environment.py b/environment.py index db44e53..a6af07a 100755 --- a/environment.py +++ b/environment.py @@ -16,6 +16,7 @@ import subprocess, os.path, platform import coredata +import dependencies from glob import glob build_filename = 'meson.build' @@ -461,6 +462,20 @@ class Dependency(): def found(self): return False +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() + # This should be an InterpreterObject. Fix it. class PkgConfigDependency(Dependency): @@ -552,6 +567,11 @@ class ExternalLibrary(Dependency): 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(): |