summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalGenerator.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2019-12-08 16:21:38 (GMT)
committerBrad King <brad.king@kitware.com>2019-12-08 16:21:38 (GMT)
commitfc9913075213e7636add2a811d41b6f3a7c37374 (patch)
treedbf4f4a0e8c6844d5c2e4efbd3fc552263bb9f48 /Source/cmGlobalGenerator.cxx
parentd71f69649f2085a67ecf27fed890de5a8f1f2362 (diff)
parentfa93b4a59bd639c995ffdf8a5c41dc587c160716 (diff)
downloadCMake-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.cxx13
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;
}