diff options
author | Brad King <brad.king@kitware.com> | 2019-12-08 16:21:38 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2019-12-08 16:21:38 (GMT) |
commit | fc9913075213e7636add2a811d41b6f3a7c37374 (patch) | |
tree | dbf4f4a0e8c6844d5c2e4efbd3fc552263bb9f48 /Source/cmGlobalGenerator.cxx | |
parent | d71f69649f2085a67ecf27fed890de5a8f1f2362 (diff) | |
parent | fa93b4a59bd639c995ffdf8a5c41dc587c160716 (diff) | |
download | CMake-fc9913075213e7636add2a811d41b6f3a7c37374.zip CMake-fc9913075213e7636add2a811d41b6f3a7c37374.tar.gz CMake-fc9913075213e7636add2a811d41b6f3a7c37374.tar.bz2 |
Merge branch 'backport-unity-object-libraries' into unity-object-libraries
Diffstat (limited to 'Source/cmGlobalGenerator.cxx')
-rw-r--r-- | Source/cmGlobalGenerator.cxx | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index 8dfc0ce..0e782f2 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -1566,13 +1566,24 @@ bool cmGlobalGenerator::AddAutomaticSources() for (cmLocalGenerator* lg : this->LocalGenerators) { lg->CreateEvaluationFileOutputs(); for (const auto& gt : lg->GetGeneratorTargets()) { - if (gt->GetType() == cmStateEnums::INTERFACE_LIBRARY) { + if (gt->GetType() == cmStateEnums::INTERFACE_LIBRARY || + gt->GetType() == cmStateEnums::UTILITY || + gt->GetType() == cmStateEnums::GLOBAL_TARGET) { continue; } lg->AddUnityBuild(gt.get()); lg->AddPchDependencies(gt.get()); } } + // The above transformations may have changed the classification of sources. + // Clear the source list and classification cache (KindedSources) of all + // targets so that it will be recomputed correctly by the generators later + // now that the above transformations are done for all targets. + for (cmLocalGenerator* lg : this->LocalGenerators) { + for (const auto& gt : lg->GetGeneratorTargets()) { + gt->ClearSourcesCache(); + } + } return true; } |