simplify force-recompile logic for "library"
Signed-off-by: onur-ozkan <work@onurozkan.dev>
This commit is contained in:
parent
a8261333e1
commit
74bfa661a5
@ -15,7 +15,6 @@
|
||||
use std::process::Stdio;
|
||||
use std::{env, fs, str};
|
||||
|
||||
use build_helper::git::get_closest_merge_commit;
|
||||
use serde_derive::Deserialize;
|
||||
|
||||
use crate::core::build_steps::tool::SourceType;
|
||||
@ -27,7 +26,7 @@
|
||||
use crate::core::config::{DebuginfoLevel, LlvmLibunwind, RustcLto, TargetSelection};
|
||||
use crate::utils::exec::command;
|
||||
use crate::utils::helpers::{
|
||||
self, exe, get_clang_cl_resource_dir, is_debug_info, is_dylib, symlink_dir, t, up_to_date,
|
||||
exe, get_clang_cl_resource_dir, is_debug_info, is_dylib, symlink_dir, t, up_to_date,
|
||||
};
|
||||
use crate::{CLang, Compiler, DependencyType, GitRepo, LLVM_TOOLS, Mode};
|
||||
|
||||
@ -125,23 +124,9 @@ fn make_run(run: RunConfig<'_>) {
|
||||
// Force compilation of the standard library from source if the `library` is modified. This allows
|
||||
// library team to compile the standard library without needing to compile the compiler with
|
||||
// the `rust.download-rustc=true` option.
|
||||
let force_recompile =
|
||||
if builder.rust_info().is_managed_git_subrepository() && builder.download_rustc() {
|
||||
let closest_merge_commit =
|
||||
get_closest_merge_commit(Some(&builder.src), &builder.config.git_config(), &[])
|
||||
.unwrap();
|
||||
|
||||
// Check if `library` has changes (returns false otherwise)
|
||||
!t!(helpers::git(Some(&builder.src))
|
||||
.args(["diff-index", "--quiet", &closest_merge_commit])
|
||||
.arg("--")
|
||||
.arg("library")
|
||||
.as_command_mut()
|
||||
.status())
|
||||
.success()
|
||||
} else {
|
||||
false
|
||||
};
|
||||
let force_recompile = builder.rust_info().is_managed_git_subrepository()
|
||||
&& builder.download_rustc()
|
||||
&& builder.config.last_modified_commit(&["library"], "download-rustc", true).is_none();
|
||||
|
||||
run.builder.ensure(Std {
|
||||
compiler: run.builder.compiler(run.builder.top_stage, run.build_triple()),
|
||||
|
Loading…
Reference in New Issue
Block a user