From 37d994294ba5af61395289380e9cf64ed3046e59 Mon Sep 17 00:00:00 2001 From: Russell Greene Date: Fri, 8 Sep 2023 11:37:57 -0600 Subject: PCH: Add missing dependency of REUSE_FROM shared compiler PDB Have the `copy_pdb_idb` script depend on the PCH file so that the shared compiler PDB is updated when the PCH is rebuilt. Fixes: #25240 --- Source/cmLocalGenerator.cxx | 11 ++++++----- Source/cmLocalGenerator.h | 4 +++- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index 6472031..63c8aa8 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -2770,10 +2770,10 @@ void cmLocalGenerator::AddPchDependencies(cmGeneratorTarget* target) } if (editAndContinueDebugInfo || msvc2008OrLess) { - this->CopyPchCompilePdb(config, target, *ReuseFrom, + this->CopyPchCompilePdb(config, lang, target, *ReuseFrom, reuseTarget, { ".pdb", ".idb" }); } else if (programDatabaseDebugInfo) { - this->CopyPchCompilePdb(config, target, *ReuseFrom, + this->CopyPchCompilePdb(config, lang, target, *ReuseFrom, reuseTarget, { ".pdb" }); } } @@ -2830,9 +2830,9 @@ void cmLocalGenerator::AddPchDependencies(cmGeneratorTarget* target) } void cmLocalGenerator::CopyPchCompilePdb( - const std::string& config, cmGeneratorTarget* target, - const std::string& ReuseFrom, cmGeneratorTarget* reuseTarget, - const std::vector& extensions) + const std::string& config, const std::string& language, + cmGeneratorTarget* target, const std::string& ReuseFrom, + cmGeneratorTarget* reuseTarget, const std::vector& extensions) { const std::string pdb_prefix = this->GetGlobalGenerator()->IsMultiConfig() ? cmStrCat(config, "/") : ""; @@ -2916,6 +2916,7 @@ void cmLocalGenerator::CopyPchCompilePdb( cc->SetCommandLines(commandLines); cc->SetComment(no_message); cc->SetStdPipesUTF8(true); + cc->AppendDepends({ reuseTarget->GetPchFile(config, language) }); if (this->GetGlobalGenerator()->IsVisualStudio()) { cc->SetByproducts(outputs); diff --git a/Source/cmLocalGenerator.h b/Source/cmLocalGenerator.h index eddc033..a920cfe 100644 --- a/Source/cmLocalGenerator.h +++ b/Source/cmLocalGenerator.h @@ -649,7 +649,9 @@ private: bool AllAppleArchSysrootsAreTheSame(const std::vector& archs, cmValue sysroot); - void CopyPchCompilePdb(const std::string& config, cmGeneratorTarget* target, + void CopyPchCompilePdb(const std::string& config, + const std::string& language, + cmGeneratorTarget* target, const std::string& ReuseFrom, cmGeneratorTarget* reuseTarget, std::vector const& extensions); -- cgit v0.12