From 479353800dac320442748bce23c4c7c69d22d7d4 Mon Sep 17 00:00:00 2001 From: Bruce Richardson Date: Wed, 13 Mar 2019 10:13:55 +0000 Subject: [PATCH] do not duplicate external dependencies in list Since the "-l" flags in the build.ninja file are passed in "--start-group"/"--end-group" flags, there should be no need to have any library listed twice, even if there are circular dependencies. Therefore we can eliminate duplicates. For speed, rather than deduplicating at the end of the process, it's faster to not add the duplicate flags in the first place. This should help fix #2150 --- mesonbuild/build.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mesonbuild/build.py b/mesonbuild/build.py index d456ab8629b8..20f0cdb28906 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -1030,8 +1030,9 @@ def add_deps(self, deps): # Deps of deps. self.add_deps(dep.ext_deps) elif isinstance(dep, dependencies.Dependency): - self.external_deps.append(dep) - self.process_sourcelist(dep.get_sources()) + if dep not in self.external_deps: + self.external_deps.append(dep) + self.process_sourcelist(dep.get_sources()) elif isinstance(dep, BuildTarget): raise InvalidArguments('''Tried to use a build target as a dependency. You probably should put it in link_with instead.''')