aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/rewriter.py
diff options
context:
space:
mode:
authorDaniel Mensinger <daniel@mensinger-ka.de>2019-03-02 17:41:25 +0100
committerDaniel Mensinger <daniel@mensinger-ka.de>2019-03-04 13:00:29 +0100
commite724fd5438a20836be1b270c1f851502ac97fdd4 (patch)
treef1daabd4671eafffa37555cb5705b2ad5e5f7772 /mesonbuild/rewriter.py
parentff5e7eb104d015c462fdae2de76c967bf00c27ad (diff)
downloadmeson-e724fd5438a20836be1b270c1f851502ac97fdd4.zip
meson-e724fd5438a20836be1b270c1f851502ac97fdd4.tar.gz
meson-e724fd5438a20836be1b270c1f851502ac97fdd4.tar.bz2
rewriter: Handle duplicate target
Diffstat (limited to 'mesonbuild/rewriter.py')
-rw-r--r--mesonbuild/rewriter.py24
1 files changed, 16 insertions, 8 deletions
diff --git a/mesonbuild/rewriter.py b/mesonbuild/rewriter.py
index 52c5a6f..2a41b2e 100644
--- a/mesonbuild/rewriter.py
+++ b/mesonbuild/rewriter.py
@@ -379,23 +379,31 @@ class Rewriter:
sys.stderr.write(json.dumps(self.info_dump, indent=2))
def find_target(self, target: str):
- def check_list(name: str):
+ def check_list(name: str) -> List[BaseNode]:
+ result = []
for i in self.interpreter.targets:
if name == i['name'] or name == i['id']:
- return i
- return None
+ result += [i]
+ return result
- tgt = check_list(target)
- if tgt is not None:
- return tgt
+ targets = check_list(target)
+ if targets:
+ if len(targets) == 1:
+ return targets[0]
+ else:
+ mlog.error('There are multiple targets matching', mlog.bold(target))
+ for i in targets:
+ mlog.error(' -- Target name', mlog.bold(i['name']), 'with ID', mlog.bold(i['id']))
+ mlog.error('Please try again with the unique ID of the target --> skipping')
+ return None
# Check the assignments
+ tgt = None
if target in self.interpreter.assignments:
node = self.interpreter.assignments[target][0]
if isinstance(node, 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)
+ tgt = self.interpreter.assign_vals[target][0]
return tgt