OSDN Git Service

llvm-build: Don't generate duplicate dependencies when LLVMBuild files define
authorDaniel Dunbar <daniel@zuster.org>
Tue, 6 Dec 2011 23:13:42 +0000 (23:13 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Tue, 6 Dec 2011 23:13:42 +0000 (23:13 +0000)
multiple components.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145989 91177308-0d34-0410-b5e6-96231b3b80d8

utils/llvm-build/llvmbuild/main.py

index c77ffcd..9c3126c 100644 (file)
@@ -397,9 +397,15 @@ class LLVMProjectInfo(object):
         # Construct a list of all the dependencies of the Makefile fragment
         # itself. These include all the LLVMBuild files themselves, as well as
         # all of our own sources.
+        #
+        # Many components may come from the same file, so we make sure to unique
+        # these.
+        build_paths = set()
         for ci in self.component_infos:
-            yield os.path.join(self.source_root, ci.subpath[1:],
-                               'LLVMBuild.txt')
+            p = os.path.join(self.source_root, ci.subpath[1:], 'LLVMBuild.txt')
+            if p not in build_paths:
+                yield p
+                build_paths.add(p)
 
         # Gather the list of necessary sources by just finding all loaded
         # modules that are inside the LLVM source tree.