mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-17 04:31:04 -06:00
Ninja: Remove redundant check for GNU-like compiler on Windows
Update the Ninja generator's check to work using whatever language is
being enabled instead of hard-coding C and CXX. With that, the
undocumented internal `CMAKE_COMPILER_IS_MINGW` variable is only set by
compilers already covered by other alternatives in the condition. See
commit b3de0dfe93 (Ninja: Use forward slashes for any GCC on Windows,
2015-05-07, v3.3.0-rc1~93^2~3).
This commit is contained in:
@@ -929,29 +929,21 @@ void cmGlobalNinjaGenerator::EnableLanguage(
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
this->ResolveLanguageCompiler(l, mf, optional);
|
this->ResolveLanguageCompiler(l, mf, optional);
|
||||||
}
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
const bool clangGnuMode =
|
std::string const& compilerId =
|
||||||
((mf->GetSafeDefinition("CMAKE_C_COMPILER_ID") == "Clang") &&
|
mf->GetSafeDefinition(cmStrCat("CMAKE_", l, "_COMPILER_ID"));
|
||||||
(mf->GetSafeDefinition("CMAKE_C_COMPILER_FRONTEND_VARIANT") == "GNU")) ||
|
std::string const& simulateId =
|
||||||
((mf->GetSafeDefinition("CMAKE_CXX_COMPILER_ID") == "Clang") &&
|
mf->GetSafeDefinition(cmStrCat("CMAKE_", l, "_SIMULATE_ID"));
|
||||||
(mf->GetSafeDefinition("CMAKE_CXX_COMPILER_FRONTEND_VARIANT") == "GNU"));
|
std::string const& compilerFrontendVariant = mf->GetSafeDefinition(
|
||||||
|
cmStrCat("CMAKE_", l, "_COMPILER_FRONTEND_VARIANT"));
|
||||||
if (clangGnuMode ||
|
if ((compilerId == "Clang" && compilerFrontendVariant == "GNU") ||
|
||||||
((mf->GetSafeDefinition("CMAKE_C_SIMULATE_ID") != "MSVC") &&
|
(simulateId != "MSVC" &&
|
||||||
(mf->GetSafeDefinition("CMAKE_CXX_SIMULATE_ID") != "MSVC") &&
|
(compilerId == "GNU" || compilerId == "QCC" ||
|
||||||
(mf->IsOn("CMAKE_COMPILER_IS_MINGW") ||
|
cmHasLiteralSuffix(compilerId, "Clang")))) {
|
||||||
(mf->GetSafeDefinition("CMAKE_C_COMPILER_ID") == "GNU") ||
|
this->UsingGCCOnWindows = true;
|
||||||
(mf->GetSafeDefinition("CMAKE_CXX_COMPILER_ID") == "GNU") ||
|
}
|
||||||
(mf->GetSafeDefinition("CMAKE_C_COMPILER_ID") == "Clang") ||
|
|
||||||
(mf->GetSafeDefinition("CMAKE_CXX_COMPILER_ID") == "Clang") ||
|
|
||||||
(mf->GetSafeDefinition("CMAKE_C_COMPILER_ID") == "ARMClang") ||
|
|
||||||
(mf->GetSafeDefinition("CMAKE_CXX_COMPILER_ID") == "ARMClang") ||
|
|
||||||
(mf->GetSafeDefinition("CMAKE_C_COMPILER_ID") == "QCC") ||
|
|
||||||
(mf->GetSafeDefinition("CMAKE_CXX_COMPILER_ID") == "QCC")))) {
|
|
||||||
this->UsingGCCOnWindows = true;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Implemented by:
|
// Implemented by:
|
||||||
|
|||||||
Reference in New Issue
Block a user