aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/rewriter.py
diff options
context:
space:
mode:
authorDaniel Mensinger <daniel@mensinger-ka.de>2019-01-31 15:57:02 +0100
committerDaniel Mensinger <daniel@mensinger-ka.de>2019-01-31 15:57:02 +0100
commit8c364952af536cbf9271e76d74501091f2d6ae45 (patch)
tree4bfb52910c78840e4bd3845e62a55fc7b142646b /mesonbuild/rewriter.py
parent56558652460104cbc74a4f1fa328d3aa34eebf0c (diff)
downloadmeson-8c364952af536cbf9271e76d74501091f2d6ae45.zip
meson-8c364952af536cbf9271e76d74501091f2d6ae45.tar.gz
meson-8c364952af536cbf9271e76d74501091f2d6ae45.tar.bz2
Added dependecy kwargs support
Diffstat (limited to 'mesonbuild/rewriter.py')
-rw-r--r--mesonbuild/rewriter.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/mesonbuild/rewriter.py b/mesonbuild/rewriter.py
index 4a7f595..2e8aedd 100644
--- a/mesonbuild/rewriter.py
+++ b/mesonbuild/rewriter.py
@@ -345,6 +345,27 @@ class Rewriter:
return tgt
+ def find_dependency(self, dependency: str):
+ def check_list(name: str):
+ for i in self.interpreter.dependencies:
+ if name == i['name']:
+ return i
+ return None
+
+ dep = check_list(dependency)
+ if dep is not None:
+ return dep
+
+ # Check the assignments
+ if dependency in self.interpreter.assignments:
+ node = self.interpreter.assignments[dependency][0]
+ if isinstance(node, mparser.FunctionNode):
+ if node.func_name in ['dependency']:
+ name = self.interpreter.flatten_args(node.args)[0]
+ dep = check_list(name)
+
+ return dep
+
@RequiredKeys(rewriter_keys['kwargs'])
def process_kwargs(self, cmd):
mlog.log('Processing function type', mlog.bold(cmd['function']), 'with id', mlog.cyan("'" + cmd['id'] + "'"))
@@ -364,6 +385,11 @@ class Rewriter:
if tmp:
node = tmp['node']
arg_node = node.args
+ elif cmd['function'] == 'dependency':
+ tmp = self.find_dependency(cmd['id'])
+ if tmp:
+ node = tmp['node']
+ arg_node = node.args
if not node:
mlog.error('Unable to find the function node')
assert(isinstance(node, mparser.FunctionNode))