diff options
author | Daniel Mensinger <daniel@mensinger-ka.de> | 2019-01-30 16:16:08 +0100 |
---|---|---|
committer | Daniel Mensinger <daniel@mensinger-ka.de> | 2019-01-31 15:43:04 +0100 |
commit | 8224ecfbe6e1811680113740341a277407904eb9 (patch) | |
tree | ba7bb8e00f088cf7b60970485d88d2c7bb895749 /mesonbuild/rewriter.py | |
parent | 4bfe0a25681f1abb8710aba1a89220dc328ee589 (diff) | |
download | meson-8224ecfbe6e1811680113740341a277407904eb9.zip meson-8224ecfbe6e1811680113740341a277407904eb9.tar.gz meson-8224ecfbe6e1811680113740341a277407904eb9.tar.bz2 |
Some fixes and assignment based target find
Diffstat (limited to 'mesonbuild/rewriter.py')
-rw-r--r-- | mesonbuild/rewriter.py | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/mesonbuild/rewriter.py b/mesonbuild/rewriter.py index 277835c..3426896 100644 --- a/mesonbuild/rewriter.py +++ b/mesonbuild/rewriter.py @@ -99,10 +99,26 @@ class Rewriter: self.interpreter.ast.accept(self.id_generator) def find_target(self, target: str): - for i in self.interpreter.targets: - if target == i['name'] or target == i['id']: - return i - return None + def check_list(name: str): + for i in self.interpreter.targets: + if name == i['name'] or name == i['id']: + return i + return None + + tgt = check_list(target) + if tgt is not None: + return tgt + + # Check the assignments + if target in self.interpreter.assignments: + node = self.interpreter.assignments[target][0] + print(node) + if isinstance(node, mparser.FunctionNode): + if node.func_name in ['executable', 'jar', 'library', 'shared_library', 'shared_module', 'static_library', 'both_libraries']: + name = self.interpreter.flatten_args(node.args)[0] + tgt = check_list(name) + + return tgt @RequiredKeys(rewriter_keys['target']) def process_target(self, cmd): |