From 40dc13b24292354d07b9720d636fa48ab3eee219 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Mon, 4 Dec 2023 07:21:37 -0500 Subject: cmNinjaTargetGenerator: PCH files do not need dyndep Fixes: #24209 --- Source/cmNinjaTargetGenerator.cxx | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx index 2283923..4025918 100644 --- a/Source/cmNinjaTargetGenerator.cxx +++ b/Source/cmNinjaTargetGenerator.cxx @@ -1367,7 +1367,10 @@ void cmNinjaTargetGenerator::WriteObjectBuildStatement( !(language == "RC" || (language == "CUDA" && !flag)); int const commandLineLengthLimit = ((lang_supports_response && this->ForceResponseFile())) ? -1 : 0; - bool const needDyndep = + cmValue pchExtension = + this->GetMakefile()->GetDefinition("CMAKE_PCH_EXTENSION"); + bool const isPch = cmHasSuffix(objectFileName, pchExtension); + bool const needDyndep = !isPch && this->GeneratorTarget->NeedDyndepForSource(language, config, source); cmNinjaBuild objBuild(this->LanguageCompilerRule( @@ -1435,13 +1438,9 @@ void cmNinjaTargetGenerator::WriteObjectBuildStatement( } objBuild.Outputs.push_back(objectFileName); - if (firstForConfig) { - cmValue pchExtension = - this->GetMakefile()->GetDefinition("CMAKE_PCH_EXTENSION"); - if (!cmHasSuffix(objectFileName, pchExtension)) { - // Add this object to the list of object files. - this->Configs[config].Objects.push_back(objectFileName); - } + if (firstForConfig && !isPch) { + // Add this object to the list of object files. + this->Configs[config].Objects.push_back(objectFileName); } objBuild.ExplicitDeps.push_back(sourceFilePath); -- cgit v0.12