Skip to content

Commit

Permalink
Fix detect family: should detect emscripten as clang, closes #1185 (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
meowtec authored Aug 16, 2024
1 parent 9b77c3f commit d3ff011
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 7 deletions.
5 changes: 5 additions & 0 deletions src/detect_compiler_family.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,8 @@
#ifdef __GNUC__
#pragma message "gcc"
#endif

#ifdef __EMSCRIPTEN__
#pragma message "emscripten"
#endif

15 changes: 8 additions & 7 deletions src/tool.rs
Original file line number Diff line number Diff line change
Expand Up @@ -169,18 +169,19 @@ impl Tool {

let clang = stdout.contains(r#""clang""#);
let gcc = stdout.contains(r#""gcc""#);
let emscripten = stdout.contains(r#""emscripten""#);

match (clang, accepts_cl_style_flags, gcc) {
(clang_cl, true, _) => Ok(ToolFamily::Msvc { clang_cl }),
(true, false, _) => Ok(ToolFamily::Clang {
match (clang, accepts_cl_style_flags, gcc, emscripten) {
(clang_cl, true, _, false) => Ok(ToolFamily::Msvc { clang_cl }),
(true, _, _, _) | (_, _, _, true) => Ok(ToolFamily::Clang {
zig_cc: is_zig_cc(path, cargo_output),
}),
(false, false, true) => Ok(ToolFamily::Gnu),
(false, false, false) => {
cargo_output.print_warning(&"Compiler family detection failed since it does not define `__clang__`, `__GNUC__` or `_MSC_VER`, fallback to treating it as GNU");
(false, false, true, _) => Ok(ToolFamily::Gnu),
(false, false, false, false) => {
cargo_output.print_warning(&"Compiler family detection failed since it does not define `__clang__`, `__GNUC__` or `__EMSCRIPTEN__`, also does not accept cl style flag `-?`, fallback to treating it as GNU");
Err(Error::new(
ErrorKind::ToolFamilyMacroNotFound,
"Expects macro `__clang__`, `__GNUC__` or `_MSC_VER`, but found none",
"Expects macro `__clang__`, `__GNUC__` or `__EMSCRIPTEN__`, or accepts cl style flag `-?`, but found none",
))
}
}
Expand Down

0 comments on commit d3ff011

Please sign in to comment.