aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r--mesonbuild/interpreter.py21
1 files changed, 20 insertions, 1 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index 4e4ba5c..c7841a8 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -275,6 +275,7 @@ class DependencyHolder(InterpreterObject, ObjectHolder):
'version': self.version_method,
'get_pkgconfig_variable': self.pkgconfig_method,
'get_configtool_variable': self.configtool_method,
+ 'partial_dependency': self.partial_dependency_method,
})
def type_name_method(self, args, kwargs):
@@ -306,12 +307,18 @@ class DependencyHolder(InterpreterObject, ObjectHolder):
raise InterpreterException('Variable name must be a string.')
return self.held_object.get_configtool_variable(varname)
+ def partial_dependency_method(self, args, kwargs):
+ if args:
+ raise InterpreterException('partial_dependency takes no positional arguments')
+ return DependencyHolder(self.held_object.get_partial_dependency(**kwargs))
+
class InternalDependencyHolder(InterpreterObject, ObjectHolder):
def __init__(self, dep):
InterpreterObject.__init__(self)
ObjectHolder.__init__(self, dep)
self.methods.update({'found': self.found_method,
'version': self.version_method,
+ 'partial_dependency': self.partial_dependency_method,
})
def found_method(self, args, kwargs):
@@ -320,6 +327,11 @@ class InternalDependencyHolder(InterpreterObject, ObjectHolder):
def version_method(self, args, kwargs):
return self.held_object.get_version()
+ def partial_dependency_method(self, args, kwargs):
+ if args:
+ raise InterpreterException('get_partial_dependency takes no positional arguments')
+ return DependencyHolder(self.held_object.get_partial_dependency(**kwargs))
+
class ExternalProgramHolder(InterpreterObject, ObjectHolder):
def __init__(self, ep):
InterpreterObject.__init__(self)
@@ -346,7 +358,9 @@ class ExternalLibraryHolder(InterpreterObject, ObjectHolder):
def __init__(self, el):
InterpreterObject.__init__(self)
ObjectHolder.__init__(self, el)
- self.methods.update({'found': self.found_method})
+ self.methods.update({'found': self.found_method,
+ 'partial_dependency': self.partial_dependency_method,
+ })
def found(self):
return self.held_object.found()
@@ -366,6 +380,11 @@ class ExternalLibraryHolder(InterpreterObject, ObjectHolder):
def get_exe_args(self):
return self.held_object.get_exe_args()
+ def partial_dependency_method(self, args, kwargs):
+ if args:
+ raise InterpreterException('partial_dependency takes no positional arguments')
+ return DependencyHolder(self.held_object.get_partial_dependency(**kwargs))
+
class GeneratorHolder(InterpreterObject, ObjectHolder):
def __init__(self, interpreter, args, kwargs):
InterpreterObject.__init__(self)