Don't hardcode the path to bootstrap_out
The `rust-dev` dist component puts binaries in `bootstrap/bin`, but we expected them to be in `bootstrap/debug` to match cargo's behavior. Rather than making the dist component inconsistent with other components, make bootstrap slightly smarter and allow using any path as long as all the binaries are in the same directory. As a bonus, this greatly simplifies the logic, and makes it possible for the shell scripts to start avoiding python. Co-authored-by: Joshua Nelson <github@jyn.dev>
This commit is contained in:
parent
55c040e529
commit
b31628ddac
1 changed files with 9 additions and 13 deletions
|
|
@ -456,19 +456,15 @@ impl Build {
|
|||
.expect("failed to read src/version");
|
||||
let version = version.trim();
|
||||
|
||||
let bootstrap_out = if std::env::var("BOOTSTRAP_PYTHON").is_ok() {
|
||||
out.join("bootstrap").join("debug")
|
||||
} else {
|
||||
let workspace_target_dir = std::env::var("CARGO_TARGET_DIR")
|
||||
.map(PathBuf::from)
|
||||
.unwrap_or_else(|_| src.join("target"));
|
||||
let bootstrap_out = workspace_target_dir.join("debug");
|
||||
if !bootstrap_out.join("rustc").exists() && !cfg!(test) {
|
||||
// this restriction can be lifted whenever https://github.com/rust-lang/rfcs/pull/3028 is implemented
|
||||
panic!("run `cargo build --bins` before `cargo run`")
|
||||
}
|
||||
bootstrap_out
|
||||
};
|
||||
let bootstrap_out = std::env::current_exe()
|
||||
.expect("could not determine path to running process")
|
||||
.parent()
|
||||
.unwrap()
|
||||
.to_path_buf();
|
||||
if !bootstrap_out.join("rustc").exists() && !cfg!(test) {
|
||||
// this restriction can be lifted whenever https://github.com/rust-lang/rfcs/pull/3028 is implemented
|
||||
panic!("run `cargo build --bins` before `cargo run`")
|
||||
}
|
||||
|
||||
let mut build = Build {
|
||||
initial_rustc: config.initial_rustc.clone(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue