aboutsummaryrefslogtreecommitdiff
path: root/environment.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2013-03-24 15:04:51 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2013-03-24 15:04:51 +0200
commit70f6b769a69aa741bd7757d82829e50a93303c50 (patch)
treec020d416c6d3b07e119b6b4dc2ef9fdacc776bc4 /environment.py
parent92084b6d9e71fc32a2e33658e2623003b14d4b0d (diff)
downloadmeson-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-xenvironment.py20
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():