diff options
author | Daniel Mensinger <daniel@mensinger-ka.de> | 2019-03-02 12:06:07 +0100 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2019-03-02 17:05:10 +0200 |
commit | 7199cd2095127770600b1c54eea53b044ce462c3 (patch) | |
tree | 6bf741d630d8590fb00f887313a0096e1f48ace3 /mesonbuild/rewriter.py | |
parent | 841da29d2cc185e7bc96f4d97ec2963472840e9c (diff) | |
download | meson-7199cd2095127770600b1c54eea53b044ce462c3.zip meson-7199cd2095127770600b1c54eea53b044ce462c3.tar.gz meson-7199cd2095127770600b1c54eea53b044ce462c3.tar.bz2 |
rewriter: Avoid duplicates
Diffstat (limited to 'mesonbuild/rewriter.py')
-rw-r--r-- | mesonbuild/rewriter.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/mesonbuild/rewriter.py b/mesonbuild/rewriter.py index bd00ff8..fc4c2cf 100644 --- a/mesonbuild/rewriter.py +++ b/mesonbuild/rewriter.py @@ -573,9 +573,19 @@ class Rewriter: node = target['node'] assert(node is not None) + # Generate the current source list + src_list = [] + for i in target['sources']: + for j in arg_list_from_node(i): + if isinstance(j, StringNode): + src_list += [j.value] + # Generate the new String nodes to_append = [] - for i in cmd['sources']: + for i in sorted(set(cmd['sources'])): + if i in src_list: + mlog.log(' -- Source', mlog.green(i), 'is already defined for the target --> skipping') + continue mlog.log(' -- Adding source', mlog.green(i), 'at', mlog.yellow('{}:{}'.format(os.path.join(node.subdir, environment.build_filename), node.lineno))) token = Token('string', node.subdir, 0, 0, 0, None, i) |