diff options
| author | bors <bors@rust-lang.org> | 2023-03-08 13:56:45 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-03-08 13:56:45 +0000 |
| commit | 38e9a110d4f136c22cb4eed9c3581d7992eade56 (patch) | |
| tree | 444f012406746465d34ce1fdda7b0f21fb0c2308 | |
| parent | 3d904e024b25211d55ca41f8d7faa8f966d124b8 (diff) | |
| parent | 4ee2abaf388f2c9cc1260222e6ece305c2cd712d (diff) | |
| download | rust-38e9a110d4f136c22cb4eed9c3581d7992eade56.tar.gz rust-38e9a110d4f136c22cb4eed9c3581d7992eade56.zip | |
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
| -rw-r--r-- | crates/project-model/src/build_scripts.rs | 13 |
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 6930ed83731..38c1b37f0e3 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()); + } } } |
