Skip to content

Commit

Permalink
fix: Normalize targets path
Browse files Browse the repository at this point in the history
  • Loading branch information
linyihai committed Sep 9, 2024
1 parent 1c5427f commit a15bb7a
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 21 deletions.
10 changes: 7 additions & 3 deletions src/cargo/util/toml/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ use crate::core::summary::MissingDependencyError;
use crate::AlreadyPrintedError;
use anyhow::{anyhow, bail, Context as _};
use cargo_platform::Platform;
use cargo_util::paths::{self, normalize_path};
use cargo_util::paths;
use cargo_util_schemas::manifest::{
self, PackageName, PathBaseName, TomlDependency, TomlDetailedDependency, TomlManifest,
};
Expand Down Expand Up @@ -3016,8 +3016,12 @@ pub fn prepare_target_for_publish(
context: &str,
gctx: &GlobalContext,
) -> CargoResult<Option<manifest::TomlTarget>> {
let path = target.path.as_ref().expect("previously normalized");
let path = normalize_path(&path.0);
let path = target
.path
.as_ref()
.expect("previously normalized")
.0
.clone();
if let Some(packaged_files) = packaged_files {
if !packaged_files.contains(&path) {
let name = target.name.as_ref().expect("previously normalized");
Expand Down
16 changes: 10 additions & 6 deletions src/cargo/util/toml/targets.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ use std::fs::{self, DirEntry};
use std::path::{Path, PathBuf};

use anyhow::Context as _;
use cargo_util::paths;
use cargo_util_schemas::manifest::{
PathValue, StringOrBool, StringOrVec, TomlBenchTarget, TomlBinTarget, TomlExampleTarget,
TomlLibTarget, TomlManifest, TomlTarget, TomlTestTarget,
Expand Down Expand Up @@ -96,11 +97,9 @@ pub(super) fn to_targets(
.and_then(|s| s.to_str())
.unwrap_or("")
);
targets.push(Target::custom_build_target(
&name,
package_root.join(custom_build),
edition,
));
let path = package_root.join(custom_build);
let path = paths::normalize_path(&path);
targets.push(Target::custom_build_target(&name, path, edition));
}
if let Some(metabuild) = metabuild {
// Verify names match available build deps.
Expand Down Expand Up @@ -169,6 +168,10 @@ pub fn normalize_lib(
}
}
}
if let Some(PathValue(path)) = lib.path {
let path = paths::normalize_path(&path);
lib.path = Some(PathValue(path));
}

Ok(Some(lib))
}
Expand Down Expand Up @@ -285,7 +288,7 @@ pub fn normalize_bins(
}
});
let path = match path {
Ok(path) => path,
Ok(path) => paths::normalize_path(&path),
Err(e) => anyhow::bail!("{}", e),
};
bin.path = Some(PathValue(path));
Expand Down Expand Up @@ -628,6 +631,7 @@ fn normalize_targets_with_legacy_path(
continue;
}
};
let path = paths::normalize_path(&path);
target.path = Some(PathValue(path));
result.push(target);
}
Expand Down
24 changes: 12 additions & 12 deletions tests/testsuite/binary_name.rs
Original file line number Diff line number Diff line change
Expand Up @@ -414,7 +414,7 @@ fn targets_with_relative_path_in_workspace_members() {
.with_stderr_data(str![[r#"
[COMPILING] relative-bar v0.1.0 ([ROOT]/foo/relative-bar)
[WARNING] unused variable: `a`
--> relative-bar/./build.rs:1:17
--> relative-bar/build.rs:1:17
|
1 | fn main() { let a = 1; }
| ^ [HELP] if this is intentional, prefix it with an underscore: `_a`
Expand All @@ -423,7 +423,7 @@ fn targets_with_relative_path_in_workspace_members() {
[WARNING] `relative-bar` (build script) generated 1 warning
[WARNING] function `a` is never used
--> relative-bar/./src/lib.rs:1:4
--> relative-bar/src/lib.rs:1:4
|
1 | fn a() {}
| ^
Expand All @@ -432,7 +432,7 @@ fn targets_with_relative_path_in_workspace_members() {
[WARNING] `relative-bar` (lib) generated 1 warning
[WARNING] unused variable: `a`
--> relative-bar/./src/main.rs:1:17
--> relative-bar/src/main.rs:1:17
|
1 | fn main() { let a = 1; }
| ^ [HELP] if this is intentional, prefix it with an underscore: `_a`
Expand All @@ -448,7 +448,7 @@ fn targets_with_relative_path_in_workspace_members() {
p.cargo("check --example example")
.with_stderr_data(str![[r#"
[WARNING] unused variable: `a`
--> relative-bar/./build.rs:1:17
--> relative-bar/build.rs:1:17
|
1 | fn main() { let a = 1; }
| ^ [HELP] if this is intentional, prefix it with an underscore: `_a`
Expand All @@ -457,7 +457,7 @@ fn targets_with_relative_path_in_workspace_members() {
[WARNING] `relative-bar` (build script) generated 1 warning
[WARNING] function `a` is never used
--> relative-bar/./src/lib.rs:1:4
--> relative-bar/src/lib.rs:1:4
|
1 | fn a() {}
| ^
Expand All @@ -467,7 +467,7 @@ fn targets_with_relative_path_in_workspace_members() {
[WARNING] `relative-bar` (lib) generated 1 warning
[CHECKING] relative-bar v0.1.0 ([ROOT]/foo/relative-bar)
[WARNING] unused variable: `a`
--> relative-bar/./example.rs:1:17
--> relative-bar/example.rs:1:17
|
1 | fn main() { let a = 1; }
| ^ [HELP] if this is intentional, prefix it with an underscore: `_a`
Expand All @@ -482,7 +482,7 @@ fn targets_with_relative_path_in_workspace_members() {

p.cargo("check --test test").with_stderr_data(str![[r#"
[WARNING] unused variable: `a`
--> relative-bar/./build.rs:1:17
--> relative-bar/build.rs:1:17
|
1 | fn main() { let a = 1; }
| ^ [HELP] if this is intentional, prefix it with an underscore: `_a`
Expand All @@ -491,7 +491,7 @@ fn targets_with_relative_path_in_workspace_members() {
[WARNING] `relative-bar` (build script) generated 1 warning
[WARNING] function `a` is never used
--> relative-bar/./src/lib.rs:1:4
--> relative-bar/src/lib.rs:1:4
|
1 | fn a() {}
| ^
Expand All @@ -501,7 +501,7 @@ fn targets_with_relative_path_in_workspace_members() {
[WARNING] `relative-bar` (lib) generated 1 warning
[CHECKING] relative-bar v0.1.0 ([ROOT]/foo/relative-bar)
[WARNING] unused variable: `a`
--> relative-bar/./test.rs:5:35
--> relative-bar/test.rs:5:35
|
5 | fn test_a() { let a = 1; }
| ^ [HELP] if this is intentional, prefix it with an underscore: `_a`
Expand All @@ -516,7 +516,7 @@ fn targets_with_relative_path_in_workspace_members() {
if is_nightly() {
p.cargo("check --bench bench").with_stderr_data(str![[r#"
[WARNING] unused variable: `a`
--> relative-bar/./build.rs:1:17
--> relative-bar/build.rs:1:17
|
1 | fn main() { let a = 1; }
| ^ [HELP] if this is intentional, prefix it with an underscore: `_a`
Expand All @@ -525,7 +525,7 @@ fn targets_with_relative_path_in_workspace_members() {
[WARNING] `relative-bar` (build script) generated 1 warning
[WARNING] function `a` is never used
--> relative-bar/./src/lib.rs:1:4
--> relative-bar/src/lib.rs:1:4
|
1 | fn a() {}
| ^
Expand All @@ -535,7 +535,7 @@ fn targets_with_relative_path_in_workspace_members() {
[WARNING] `relative-bar` (lib) generated 1 warning
[CHECKING] relative-bar v0.1.0 ([ROOT]/foo/relative-bar)
[WARNING] unused variable: `a`
--> relative-bar/./bench.rs:7:58
--> relative-bar/bench.rs:7:58
|
7 | fn bench_a(_b: &mut test::Bencher) { let a = 1; }
| ^ [HELP] if this is intentional, prefix it with an underscore: `_a`
Expand Down

0 comments on commit a15bb7a

Please sign in to comment.