rust-lang / cc-rs

Rust library for build scripts to compile C/C++ code into a Rust library
https://docs.rs/cc
Apache License 2.0
1.79k stars 434 forks source link

Fix regression in compiler family detection #1014

Closed russelltg closed 5 months ago

russelltg commented 5 months ago

f36d6a7ed06033c38021ef65e2b7f1da38932024 introduced a regression where if your output directory had any of the special strings in it it would erronously find the string.

For example, my output dir is /workspaces/ars/build_windows_clang_x86_64_relnoopt/./cargo/build/x86_64-pc-windows-msvc/release/

But i'm using clang (and not clang-cl), so it finds msvc in the output and decides this is clang-cl.

Adding the quotes still feels messy--but I'm not sure if there is a bettery way--you can't just search for the pragma comment as at least clang seems to insert the parenthesis. We could use a regular expression of something like #\s*pragma\s*message\s*\(?\s*"clang"\s*\)? but that's kinda icky as well.