Revert "Revert "Move llvm submodule updates to rustbuild""
This reverts commit ad308264a3
.
This commit is contained in:
parent
c4c2ab57a4
commit
f4210fc12f
4 changed files with 98 additions and 13 deletions
|
@ -991,28 +991,20 @@ class RustBuild(object):
|
|||
).decode(default_encoding).splitlines()]
|
||||
filtered_submodules = []
|
||||
submodules_names = []
|
||||
llvm_checked_out = os.path.exists(os.path.join(self.rust_root, "src/llvm-project/.git"))
|
||||
external_llvm_provided = self.get_toml('llvm-config') or self.downloading_llvm()
|
||||
llvm_needed = not self.get_toml('codegen-backends', 'rust') \
|
||||
or "llvm" in self.get_toml('codegen-backends', 'rust')
|
||||
for module in submodules:
|
||||
# This is handled by native::Llvm in rustbuild, not here
|
||||
if module.endswith("llvm-project"):
|
||||
# Don't sync the llvm-project submodule if an external LLVM was
|
||||
# provided, if we are downloading LLVM or if the LLVM backend is
|
||||
# not being built. Also, if the submodule has been initialized
|
||||
# already, sync it anyways so that it doesn't mess up contributor
|
||||
# pull requests.
|
||||
if external_llvm_provided or not llvm_needed:
|
||||
if self.get_toml('lld') != 'true' and not llvm_checked_out:
|
||||
continue
|
||||
continue
|
||||
check = self.check_submodule(module, slow_submodules)
|
||||
filtered_submodules.append((module, check))
|
||||
submodules_names.append(module)
|
||||
recorded = subprocess.Popen(["git", "ls-tree", "HEAD"] + submodules_names,
|
||||
cwd=self.rust_root, stdout=subprocess.PIPE)
|
||||
recorded = recorded.communicate()[0].decode(default_encoding).strip().splitlines()
|
||||
# { filename: hash }
|
||||
recorded_submodules = {}
|
||||
for data in recorded:
|
||||
# [mode, kind, hash, filename]
|
||||
data = data.split()
|
||||
recorded_submodules[data[3]] = data[2]
|
||||
for module in filtered_submodules:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue