diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2016-10-15 15:21:55 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2016-10-19 22:36:34 +0300 |
commit | e9089101876e4a6ce9192199f9193720ef6bb816 (patch) | |
tree | 8466fad18b93b910894609ca8495f4c30f083fda /mesonbuild/interpreter.py | |
parent | 44690763b0d0ba7af132dbbf4212ab4c63ad8d46 (diff) | |
download | meson-e9089101876e4a6ce9192199f9193720ef6bb816.zip meson-e9089101876e4a6ce9192199f9193720ef6bb816.tar.gz meson-e9089101876e4a6ce9192199f9193720ef6bb816.tar.bz2 |
Can query pkg-config variables from the system. Closes #726.
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r-- | mesonbuild/interpreter.py | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 27a46de..44b5748 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -284,7 +284,10 @@ class DependencyHolder(InterpreterObject): self.held_object = dep self.methods.update({'found' : self.found_method, 'type_name': self.type_name_method, - 'version': self.version_method}) + 'version': self.version_method, + 'version': self.version_method, + 'get_pkgconfig_variable': self.pkgconfig_method, + }) def type_name_method(self, args, kwargs): return self.held_object.type_name @@ -298,6 +301,29 @@ class DependencyHolder(InterpreterObject): def version_method(self, args, kwargs): return self.held_object.get_version() + def pkgconfig_method(self, args, kwargs): + if not isinstance(args, list): + args = [args] + if len(args) != 1: + raise InterpreterException('get_pkgconfig_variable takes exactly one argument.') + varname = args[0] + if not isinstance(varname, str): + raise InterpreterException('Variable name must be a string.') + return self.held_object.get_pkgconfig_variable(varname) + +class InternalDependencyHolder(InterpreterObject): + def __init__(self, dep): + InterpreterObject.__init__(self) + self.held_object = dep + 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): |