diff options
| author | bors <bors@rust-lang.org> | 2022-06-04 13:05:36 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-06-04 13:05:36 +0000 |
| commit | 044b6ddca93375320db7f33744bf14a061b016e6 (patch) | |
| tree | 0da16effde147c2540cfb7d6474158e342714e5d | |
| parent | 312913a640760e9af0cff07cbb29950b810a643c (diff) | |
| parent | 62fede212ac6c8f0cb8948ece79a237cfb18e095 (diff) | |
| download | rust-044b6ddca93375320db7f33744bf14a061b016e6.tar.gz rust-044b6ddca93375320db7f33744bf14a061b016e6.zip | |
Auto merge of #12465 - Veykril:buildscripts, r=Veykril
internal: Only record build script outputs when the output has been changed Follow up to https://github.com/rust-lang/rust-analyzer/pull/12457
| -rw-r--r-- | crates/project-model/src/build_scripts.rs | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/crates/project-model/src/build_scripts.rs b/crates/project-model/src/build_scripts.rs index 73091306a85..ff46bb8fb43 100644 --- a/crates/project-model/src/build_scripts.rs +++ b/crates/project-model/src/build_scripts.rs @@ -142,18 +142,18 @@ impl WorkspaceBuildScripts { } acc }; - let package_build_data = - outputs[package].get_or_insert_with(Default::default); // cargo_metadata crate returns default (empty) path for // older cargos, which is not absolute, so work around that. - if !message.out_dir.as_str().is_empty() { - let out_dir = - AbsPathBuf::assert(PathBuf::from(message.out_dir.into_os_string())); - package_build_data.out_dir = Some(out_dir); - package_build_data.cfgs = cfgs; + let out_dir = message.out_dir.into_os_string(); + if !out_dir.is_empty() { + let data = outputs[package].get_or_insert_with(Default::default); + let out_dir = Some(AbsPathBuf::assert(PathBuf::from(out_dir))); + (data.out_dir, data.cfgs) = (out_dir, cfgs); + } + if !message.env.is_empty() { + outputs[package].get_or_insert_with(Default::default).envs = + message.env; } - - package_build_data.envs = message.env; } Message::CompilerArtifact(message) => { let package = match by_id.get(&message.package_id.repr) { @@ -195,7 +195,7 @@ impl WorkspaceBuildScripts { for package in workspace.packages() { if let Some(package_build_data) = &mut outputs[package] { tracing::info!( - "{} BuildScriptOutput: {:?}", + "{}: {:?}", workspace[package].manifest.parent().display(), package_build_data, ); |
