Преглед изворни кода

cmLocalUnixMakefileGenerator3: Generate targets in dependency order

Use the globally computed target ordering so that we generate all
of a target's dependencies before generating the target itself.
Brad King пре 5 година
родитељ
комит
17aba9c9a6
1 измењених фајлова са 4 додато и 3 уклоњено
  1. 4 3
      Source/cmLocalUnixMakefileGenerator3.cxx

+ 4 - 3
Source/cmLocalUnixMakefileGenerator3.cxx

@@ -100,12 +100,13 @@ void cmLocalUnixMakefileGenerator3::Generate()
   // Generate the rule files for each target.
   cmGlobalUnixMakefileGenerator3* gg =
     static_cast<cmGlobalUnixMakefileGenerator3*>(this->GlobalGenerator);
-  for (const auto& target : this->GetGeneratorTargets()) {
-    if (!target->IsInBuildSystem()) {
+  for (cmGeneratorTarget* gt :
+       this->GlobalGenerator->GetLocalGeneratorTargetsInOrder(this)) {
+    if (!gt->IsInBuildSystem()) {
       continue;
     }
     std::unique_ptr<cmMakefileTargetGenerator> tg(
-      cmMakefileTargetGenerator::New(target.get()));
+      cmMakefileTargetGenerator::New(gt));
     if (tg) {
       tg->WriteRuleFiles();
       gg->RecordTargetProgress(tg.get());