diff options
author | Russell Greene <russell@shotover.com> | 2023-09-08 17:37:57 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2023-09-11 12:59:20 (GMT) |
commit | 37d994294ba5af61395289380e9cf64ed3046e59 (patch) | |
tree | bd8687349568438682c2d96e82ef7d61a3e23f66 | |
parent | 91585ad105ff611fbaa507e758a5c9043bb9d142 (diff) | |
download | CMake-37d994294ba5af61395289380e9cf64ed3046e59.zip CMake-37d994294ba5af61395289380e9cf64ed3046e59.tar.gz CMake-37d994294ba5af61395289380e9cf64ed3046e59.tar.bz2 |
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
-rw-r--r-- | Source/cmLocalGenerator.cxx | 11 | ||||
-rw-r--r-- | 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<std::string>& extensions) + const std::string& config, const std::string& language, + cmGeneratorTarget* target, const std::string& ReuseFrom, + cmGeneratorTarget* reuseTarget, const std::vector<std::string>& 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<std::string>& 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<std::string> const& extensions); |