diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2013-03-24 15:04:51 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2013-03-24 15:04:51 +0200 |
commit | 70f6b769a69aa741bd7757d82829e50a93303c50 (patch) | |
tree | c020d416c6d3b07e119b6b4dc2ef9fdacc776bc4 /environment.py | |
parent | 92084b6d9e71fc32a2e33658e2623003b14d4b0d (diff) | |
download | meson-70f6b769a69aa741bd7757d82829e50a93303c50.zip meson-70f6b769a69aa741bd7757d82829e50a93303c50.tar.gz meson-70f6b769a69aa741bd7757d82829e50a93303c50.tar.bz2 |
Added custom detector framework and a Boost detector to it.
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(): |