Merge topic 'pch-tv90'

ce7c100545 PCH: Fix 30s wait for VS2008 when used via -Tv90

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5199
This commit is contained in:
Brad King
2020-09-09 15:23:54 +00:00
committed by Kitware Robot

View File

@@ -2574,17 +2574,29 @@ void cmLocalGenerator::AddPchDependencies(cmGeneratorTarget* target)
this->Makefile->GetSafeDefinition(
cmStrCat("CMAKE_", lang, "_FLAGS_", configUpper));
bool editAndContinueDebugInfo =
langFlags.find("/ZI") != std::string::npos ||
langFlags.find("-ZI") != std::string::npos;
bool enableDebuggingInformation =
langFlags.find("/Zi") != std::string::npos ||
langFlags.find("-Zi") != std::string::npos;
// MSVC 2008 is producing both .pdb and .idb files with /Zi.
if ((langFlags.find("/ZI") != std::string::npos ||
langFlags.find("-ZI") != std::string::npos) ||
(cmSystemTools::VersionCompare(cmSystemTools::OP_LESS,
compilerVersion.c_str(),
"16.0") &&
compilerId == "MSVC")) {
bool msvc2008OrLess =
cmSystemTools::VersionCompare(
cmSystemTools::OP_LESS, compilerVersion.c_str(), "16.0") &&
compilerId == "MSVC";
// but not when used via toolset -Tv90
if (this->Makefile->GetSafeDefinition(
"CMAKE_VS_PLATFORM_TOOLSET") == "v90") {
msvc2008OrLess = false;
}
if (editAndContinueDebugInfo || msvc2008OrLess) {
CopyPchCompilePdb(config, target, *ReuseFrom, reuseTarget,
{ ".pdb", ".idb" });
} else if ((langFlags.find("/Zi") != std::string::npos ||
langFlags.find("-Zi") != std::string::npos)) {
} else if (enableDebuggingInformation) {
CopyPchCompilePdb(config, target, *ReuseFrom, reuseTarget,
{ ".pdb" });
}