diff options
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r-- | mesonbuild/interpreter.py | 18 |
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 |