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.
This commit is contained in:
Brad King
2020-09-03 14:55:34 -04:00
parent 69ee18163b
commit 17aba9c9a6

View File

@@ -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());