mirror of
https://github.com/rust-lang/cargo.git
synced 2025-09-28 11:20:36 +00:00
fix(embedded): Keep target dir in cargo home
This was broken in #12268 when we stopped using an intermediate `Cargo.toml` file. Unlike pre-#12268, - We are hashing the path, rather than the content, with the assumption that people change content more frequently than the path - We are using a simpler hash than `blake3` in the hopes that we can get away with it Unlike the Pre-RFC demo - We are not forcing a single target dir for all scripts in the hopes that we get #5931
This commit is contained in:
parent
282a3e7324
commit
aca7b08405
@ -385,7 +385,17 @@ impl<'cfg> Workspace<'cfg> {
|
||||
}
|
||||
|
||||
fn default_target_dir(&self) -> Filesystem {
|
||||
Filesystem::new(self.root().join("target"))
|
||||
if self.root_maybe().is_embedded() {
|
||||
let hash = crate::util::hex::short_hash(&self.root_manifest().to_string_lossy());
|
||||
let mut rel_path = PathBuf::new();
|
||||
rel_path.push("target");
|
||||
rel_path.push(&hash[0..2]);
|
||||
rel_path.push(&hash[2..]);
|
||||
|
||||
self.config().home().join(rel_path)
|
||||
} else {
|
||||
Filesystem::new(self.root().join("target"))
|
||||
}
|
||||
}
|
||||
|
||||
/// Returns the root `[replace]` section of this workspace.
|
||||
|
@ -35,7 +35,7 @@ args: []
|
||||
[WARNING] `package.edition` is unspecifiead, defaulting to `2021`
|
||||
[COMPILING] echo v0.0.0 ([ROOT]/foo)
|
||||
[FINISHED] dev [unoptimized + debuginfo] target(s) in [..]s
|
||||
[RUNNING] `[..]debug/echo[EXE]`
|
||||
[RUNNING] `[..]/debug/echo[EXE]`
|
||||
",
|
||||
)
|
||||
.run();
|
||||
@ -537,3 +537,28 @@ fn main() {
|
||||
)
|
||||
.run();
|
||||
}
|
||||
|
||||
#[cargo_test]
|
||||
fn implicit_target_dir() {
|
||||
let script = ECHO_SCRIPT;
|
||||
let p = cargo_test_support::project()
|
||||
.file("script.rs", script)
|
||||
.build();
|
||||
|
||||
p.cargo("-Zscript script.rs")
|
||||
.masquerade_as_nightly_cargo(&["script"])
|
||||
.with_stdout(
|
||||
r#"bin: [ROOT]/home/.cargo/target/[..]/debug/script[EXE]
|
||||
args: []
|
||||
"#,
|
||||
)
|
||||
.with_stderr(
|
||||
"\
|
||||
[WARNING] `package.edition` is unspecifiead, defaulting to `2021`
|
||||
[COMPILING] script v0.0.0 ([ROOT]/foo)
|
||||
[FINISHED] dev [unoptimized + debuginfo] target(s) in [..]s
|
||||
[RUNNING] `[ROOT]/home/.cargo/target/[..]/debug/script[EXE]`
|
||||
",
|
||||
)
|
||||
.run();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user