Rollup merge of #83368 - jyn514:download-if-unchanged, r=Mark-Simulacrum
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 sets `BOOTSTRAP_DOWNLOAD_RUSTC` in bootstrap.py so rustbuild doesn't have to try and replicate its logic. Helps with https://github.com/rust-lang/rust/issues/81930. r? `@Mark-Simulacrum` cc `@camelid`
This commit is contained in:
commit
335a3c4b7f
3 changed files with 13 additions and 4 deletions
|
@ -644,8 +644,10 @@ class RustBuild(object):
|
|||
# If `download-rustc` is set, download the most recent commit with CI artifacts
|
||||
def maybe_download_ci_toolchain(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"]
|
||||
|
@ -660,6 +662,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/")
|
||||
|
||||
if self.verbose:
|
||||
|
@ -1175,6 +1179,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)
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue