Unnamed repository; edit this file 'description' to name the repository.
Auto merge of #14287 - Veykril:rustc_private-proc-macro, r=Veykril
minor: Fixup dylib extensions for rustc_private proc-macro loading Follow up to https://github.com/rust-lang/rust-analyzer/pull/14282
bors 2023-03-08
parent 3d904e0 · parent 4ee2aba · commit 38e9a11
-rw-r--r--crates/project-model/src/build_scripts.rs13
1 files changed, 8 insertions, 5 deletions
diff --git a/crates/project-model/src/build_scripts.rs b/crates/project-model/src/build_scripts.rs
index 6930ed8373..38c1b37f0e 100644
--- a/crates/project-model/src/build_scripts.rs
+++ b/crates/project-model/src/build_scripts.rs
@@ -416,7 +416,7 @@ impl WorkspaceBuildScripts {
let path = dir_entry.path();
tracing::info!("p{:?}", path);
let extension = path.extension()?;
- if extension == "dll" || extension == "so" {
+ if extension == std::env::consts::DLL_EXTENSION {
let name = path.file_stem()?.to_str()?.split_once('-')?.0.to_owned();
let path = AbsPathBuf::try_from(path).ok()?;
return Some((name, path));
@@ -426,10 +426,13 @@ impl WorkspaceBuildScripts {
})
.collect();
for p in rustc.packages() {
- if let Some((_, path)) =
- proc_macro_dylibs.iter().find(|(name, _)| *name == rustc[p].name)
- {
- bs.outputs[p].proc_macro_dylib_path = Some(path.clone());
+ let package = &rustc[p];
+ if package.targets.iter().any(|&it| rustc[it].is_proc_macro) {
+ if let Some((_, path)) =
+ proc_macro_dylibs.iter().find(|(name, _)| *name == package.name)
+ {
+ bs.outputs[p].proc_macro_dylib_path = Some(path.clone());
+ }
}
}