aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2016-05-29 03:15:16 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2016-05-29 03:15:16 +0300
commitcff4e7d29904250ff95feda85d8baa9da93652de (patch)
treeef3c3c8e9e02f6a7ffdb6094e3f52a44cbefa91f /mesonbuild/interpreter.py
parentb5013a573ae18ff009e498c778614712352f0b44 (diff)
downloadmeson-cff4e7d29904250ff95feda85d8baa9da93652de.zip
meson-cff4e7d29904250ff95feda85d8baa9da93652de.tar.gz
meson-cff4e7d29904250ff95feda85d8baa9da93652de.tar.bz2
Can query version strings of dependencies.
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r--mesonbuild/interpreter.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index aac021a..3b9226a 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -225,20 +225,29 @@ class DependencyHolder(InterpreterObject):
def __init__(self, dep):
InterpreterObject.__init__(self)
self.held_object = dep
- self.methods.update({'found' : self.found_method})
+ self.methods.update({'found' : self.found_method,
+ 'version': self.version_method})
def found_method(self, args, kwargs):
return self.held_object.found()
+ def version_method(self, args, kwargs):
+ return self.held_object.get_version()
+
class InternalDependencyHolder(InterpreterObject):
def __init__(self, dep):
InterpreterObject.__init__(self)
self.held_object = dep
- self.methods.update({'found' : self.found_method})
+ self.methods.update({'found' : self.found_method,
+ 'version': self.version_method,
+ })
def found_method(self, args, kwargs):
return True
+ def version_method(self, args, kwargs):
+ return self.held_object.get_version()
+
class ExternalProgramHolder(InterpreterObject):
def __init__(self, ep):
InterpreterObject.__init__(self)
@@ -1175,6 +1184,9 @@ class Interpreter():
@noPosargs
def func_declare_dependency(self, node, args, kwargs):
+ version = kwargs.get('version', 'undefined')
+ if not isinstance(version, str):
+ raise InterpreterException('Version must be a string.')
incs = kwargs.get('include_directories', [])
if not isinstance(incs, list):
incs = [incs]
@@ -1199,7 +1211,7 @@ class Interpreter():
if not isinstance(d, (dependencies.Dependency, dependencies.ExternalLibrary, dependencies.InternalDependency)):
raise InterpreterException('Dependencies must be external deps')
final_deps.append(d)
- dep = dependencies.InternalDependency(incs, compile_args, link_args, libs, sources, final_deps)
+ dep = dependencies.InternalDependency(version, incs, compile_args, link_args, libs, sources, final_deps)
return InternalDependencyHolder(dep)
@noKwargs