Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/project-model/src/cargo_workspace.rs')
| -rw-r--r-- | crates/project-model/src/cargo_workspace.rs | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/crates/project-model/src/cargo_workspace.rs b/crates/project-model/src/cargo_workspace.rs index d304c9762c..6e730b1aea 100644 --- a/crates/project-model/src/cargo_workspace.rs +++ b/crates/project-model/src/cargo_workspace.rs @@ -104,7 +104,7 @@ pub struct CargoConfig { /// Extra args to pass to the cargo command. pub extra_args: Vec<String>, /// Extra env vars to set when invoking the cargo command - pub extra_env: FxHashMap<String, String>, + pub extra_env: FxHashMap<String, Option<String>>, pub invocation_strategy: InvocationStrategy, /// Optional path to use instead of `target` when building pub target_dir: Option<Utf8PathBuf>, @@ -289,7 +289,7 @@ pub struct CargoMetadataConfig { /// Extra args to pass to the cargo command. pub extra_args: Vec<String>, /// Extra env vars to set when invoking the cargo command - pub extra_env: FxHashMap<String, String>, + pub extra_env: FxHashMap<String, Option<String>>, } // Deserialize helper for the cargo metadata @@ -343,11 +343,10 @@ impl CargoWorkspace { locked: bool, progress: &dyn Fn(String), ) -> anyhow::Result<(cargo_metadata::Metadata, Option<anyhow::Error>)> { - let cargo = sysroot.tool(Tool::Cargo, current_dir); + let cargo = sysroot.tool(Tool::Cargo, current_dir, &config.extra_env); let mut meta = MetadataCommand::new(); meta.cargo_path(cargo.get_program()); cargo.get_envs().for_each(|(var, val)| _ = meta.env(var, val.unwrap_or_default())); - config.extra_env.iter().for_each(|(var, val)| _ = meta.env(var, val)); meta.manifest_path(cargo_toml.to_path_buf()); match &config.features { CargoFeatures::All => { |