Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/project-model/src/workspace.rs')
-rw-r--r--crates/project-model/src/workspace.rs15
1 files changed, 13 insertions, 2 deletions
diff --git a/crates/project-model/src/workspace.rs b/crates/project-model/src/workspace.rs
index 784255ff05..e27029d8c0 100644
--- a/crates/project-model/src/workspace.rs
+++ b/crates/project-model/src/workspace.rs
@@ -217,6 +217,7 @@ impl ProjectWorkspace {
rustc_source,
extra_args,
metadata_extra_args,
+ config_path,
extra_env,
set_test,
cfg_overrides,
@@ -269,7 +270,8 @@ impl ProjectWorkspace {
tracing::info!(workspace = %cargo_toml, src_root = ?sysroot.rust_lib_src_root(), root = ?sysroot.root(), "Using sysroot");
progress("querying project metadata".to_owned());
- let config_file = CargoConfigFile::load(cargo_toml, extra_env, &sysroot);
+ let config_file =
+ CargoConfigFile::load(cargo_toml, extra_env, &sysroot, config_path.as_deref());
let config_file_ = config_file.clone();
let toolchain_config = QueryConfig::Cargo(&sysroot, cargo_toml, &config_file_);
let targets =
@@ -291,6 +293,7 @@ impl ProjectWorkspace {
targets: targets.clone(),
extra_args: extra_args.clone(),
metadata_extra_args: metadata_extra_args.clone(),
+ config_path: config_path.clone(),
extra_env: extra_env.clone(),
toolchain_version: toolchain.clone(),
kind: "workspace",
@@ -346,6 +349,7 @@ impl ProjectWorkspace {
targets: targets.clone(),
extra_args: extra_args.clone(),
metadata_extra_args: metadata_extra_args.clone(),
+ config_path: config_path.clone(),
extra_env: extra_env.clone(),
toolchain_version: toolchain.clone(),
kind: "rustc-dev"
@@ -549,7 +553,12 @@ impl ProjectWorkspace {
None => Sysroot::empty(),
};
- let config_file = CargoConfigFile::load(detached_file, &config.extra_env, &sysroot);
+ let config_file = CargoConfigFile::load(
+ detached_file,
+ &config.extra_env,
+ &sysroot,
+ config.config_path.as_deref(),
+ );
let query_config = QueryConfig::Cargo(&sysroot, detached_file, &config_file);
let toolchain = version::get(query_config, &config.extra_env).ok().flatten();
let targets = target_tuple::get(query_config, config.target.as_deref(), &config.extra_env)
@@ -579,6 +588,7 @@ impl ProjectWorkspace {
targets,
extra_args: config.extra_args.clone(),
metadata_extra_args: config.metadata_extra_args.clone(),
+ config_path: config.config_path.clone(),
extra_env: config.extra_env.clone(),
toolchain_version: toolchain.clone(),
kind: "detached-file",
@@ -1954,6 +1964,7 @@ fn sysroot_metadata_config(
targets,
extra_args: Default::default(),
metadata_extra_args: Default::default(),
+ config_path: Default::default(),
extra_env: config.extra_env.clone(),
toolchain_version,
kind: "sysroot",