1
Fork 0

Add download-rustc = "if-unchanged"

This allows keeping the setting to a fixed value without having to
toggle it when you want to work on the compiler instead of on tools.
This commit is contained in:
Joshua Nelson 2021-03-22 02:31:47 -04:00
parent 35385770ae
commit 580a740bdd
3 changed files with 13 additions and 4 deletions

View file

@ -638,8 +638,10 @@ class RustBuild(object):
# Return the stage1 compiler to download, if any.
def maybe_download_rustc(self):
# If `download-rustc` is not set, default to rebuilding.
if self.get_toml("download-rustc", section="rust") != "true":
download_rustc = self.get_toml("download-rustc", section="rust")
if download_rustc is None or download_rustc == "false":
return None
assert download_rustc == "true" or download_rustc == "if-unchanged", download_rustc
# Handle running from a directory other than the top level
rev_parse = ["git", "rev-parse", "--show-toplevel"]
@ -654,6 +656,8 @@ class RustBuild(object):
# Warn if there were changes to the compiler since the ancestor commit.
status = subprocess.call(["git", "diff-index", "--quiet", commit, "--", compiler])
if status != 0:
if download_rustc == "if-unchanged":
return None
print("warning: `download-rustc` is enabled, but there are changes to compiler/")
return commit
@ -1158,6 +1162,8 @@ def bootstrap(help_triggered):
env["RUSTC_BOOTSTRAP"] = '1'
if toml_path:
env["BOOTSTRAP_CONFIG"] = toml_path
if build.rustc_commit is not None:
env["BOOTSTRAP_DOWNLOAD_RUSTC"] = '1'
run(args, env=env, verbose=build.verbose)