diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2016-05-29 03:15:16 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2016-05-29 03:15:16 +0300 |
commit | cff4e7d29904250ff95feda85d8baa9da93652de (patch) | |
tree | ef3c3c8e9e02f6a7ffdb6094e3f52a44cbefa91f /mesonbuild/interpreter.py | |
parent | b5013a573ae18ff009e498c778614712352f0b44 (diff) | |
download | meson-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.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 |