From 17aba9c9a6a73dfc110c026abfe1f16e13cb1bec Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 3 Sep 2020 14:55:34 -0400 Subject: 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. --- Source/cmLocalUnixMakefileGenerator3.cxx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx b/Source/cmLocalUnixMakefileGenerator3.cxx index 9825f1c..c449450 100644 --- a/Source/cmLocalUnixMakefileGenerator3.cxx +++ b/Source/cmLocalUnixMakefileGenerator3.cxx @@ -100,12 +100,13 @@ void cmLocalUnixMakefileGenerator3::Generate() // Generate the rule files for each target. cmGlobalUnixMakefileGenerator3* gg = static_cast(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 tg( - cmMakefileTargetGenerator::New(target.get())); + cmMakefileTargetGenerator::New(gt)); if (tg) { tg->WriteRuleFiles(); gg->RecordTargetProgress(tg.get()); -- cgit v0.12