aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
diff options
context:
space:
mode:
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