diff --git a/Cargo.lock b/Cargo.lock index 9b68563..64a9410 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -107,6 +107,7 @@ dependencies = [ "clap", "crossterm", "directories", + "dunce", "env_logger", "log", "relative-path", @@ -352,7 +353,7 @@ dependencies = [ "libc", "option-ext", "redox_users", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -375,6 +376,12 @@ dependencies = [ "litrs", ] +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + [[package]] name = "env_filter" version = "0.1.3" @@ -1074,7 +1081,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 75d6799..656c071 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -29,6 +29,7 @@ test-log = "0.2.18" cargo_metadata = "0.21.0" cargo-util-schemas = "0.8.2" semver = "1.0.26" +dunce = "1.0.5" # This crate MUST NEVER be upgraded, we need this particular "first" version to support old rust-gpu builds legacy_target_specs = { package = "rustc_codegen_spirv-target-specs", version = "0.9.0", features = ["include_str"] } diff --git a/crates/cargo-gpu/Cargo.toml b/crates/cargo-gpu/Cargo.toml index 8ef4a6c..8de68b2 100644 --- a/crates/cargo-gpu/Cargo.toml +++ b/crates/cargo-gpu/Cargo.toml @@ -24,6 +24,7 @@ serde.workspace = true serde_json.workspace = true crossterm.workspace = true semver.workspace = true +dunce.workspace = true [dev-dependencies] test-log.workspace = true diff --git a/crates/cargo-gpu/src/build.rs b/crates/cargo-gpu/src/build.rs index 1bb5078..2a7f158 100644 --- a/crates/cargo-gpu/src/build.rs +++ b/crates/cargo-gpu/src/build.rs @@ -76,12 +76,12 @@ impl Build { self.build.output_dir.display() ); std::fs::create_dir_all(&self.build.output_dir)?; - let canonicalized = self.build.output_dir.canonicalize()?; + let canonicalized = dunce::canonicalize(&self.build.output_dir)?; log::debug!("canonicalized output dir: {}", canonicalized.display()); self.build.output_dir = canonicalized; // Ensure the shader crate exists - self.install.shader_crate = self.install.shader_crate.canonicalize()?; + self.install.shader_crate = dunce::canonicalize(&self.install.shader_crate)?; anyhow::ensure!( self.install.shader_crate.exists(), "shader crate '{}' does not exist. (Current dir is '{}')",