Set CARGO_TARGET_DIR when using Flycheck custom command

This commit is contained in:
Victor Song 2023-09-30 21:23:16 -05:00
parent ef0b3bbef1
commit 3682c3791b
2 changed files with 9 additions and 1 deletions

View File

@ -58,6 +58,7 @@ pub enum FlycheckConfig {
extra_env: FxHashMap<String, String>,
invocation_strategy: InvocationStrategy,
invocation_location: InvocationLocation,
target_dir: Option<PathBuf>,
},
}
@ -354,10 +355,15 @@ impl FlycheckActor {
extra_env,
invocation_strategy,
invocation_location,
target_dir,
} => {
let mut cmd = Command::new(command);
cmd.envs(extra_env);
if let Some(target_dir) = target_dir {
cmd.env("CARGO_TARGET_DIR", target_dir);
}
match invocation_location {
InvocationLocation::Workspace => {
match invocation_strategy {

View File

@ -1289,6 +1289,7 @@ impl Config {
}
pub fn flycheck(&self) -> FlycheckConfig {
let target_dir = self.target_dir_from_config();
match &self.data.check_overrideCommand {
Some(args) if !args.is_empty() => {
let mut args = args.clone();
@ -1309,6 +1310,7 @@ impl Config {
}
InvocationLocation::Workspace => flycheck::InvocationLocation::Workspace,
},
target_dir,
}
}
Some(_) | None => FlycheckConfig::CargoCommand {
@ -1343,7 +1345,7 @@ impl Config {
extra_args: self.check_extra_args(),
extra_env: self.check_extra_env(),
ansi_color_output: self.color_diagnostic_output(),
target_dir: self.target_dir_from_config(),
target_dir,
},
}
}