From b4de606bdd604b0e7f4d98826aa5ea074084f890 Mon Sep 17 00:00:00 2001 From: Ken Martin Date: Thu, 12 Apr 2007 14:21:58 -0400 Subject: [PATCH] BUG: fix progress for ENCLUDE_FORM_ALL cases using new project to target map. Only fixes it for the top level all target --- Source/cmGlobalUnixMakefileGenerator3.cxx | 39 ++++++++--------------- 1 file changed, 14 insertions(+), 25 deletions(-) diff --git a/Source/cmGlobalUnixMakefileGenerator3.cxx b/Source/cmGlobalUnixMakefileGenerator3.cxx index d6f0db2f6..f846f40c8 100644 --- a/Source/cmGlobalUnixMakefileGenerator3.cxx +++ b/Source/cmGlobalUnixMakefileGenerator3.cxx @@ -912,40 +912,29 @@ int cmGlobalUnixMakefileGenerator3 return result; } -unsigned long cmGlobalUnixMakefileGenerator3:: -GetNumberOfProgressActionsInAll(cmLocalUnixMakefileGenerator3 *lg) +unsigned long cmGlobalUnixMakefileGenerator3 +::GetNumberOfProgressActionsInAll(cmLocalUnixMakefileGenerator3 *lg) { unsigned long result = 0; // for every target in the top level all if (!lg->GetParent()) { - // loop over the generators and targets - unsigned int i; - cmLocalUnixMakefileGenerator3 *lg3; - for (i = 0; i < this->LocalGenerators.size(); ++i) + // use the new project to target map + std::set &targets = + this->ProjectToTargetMap[lg->GetMakefile()->GetProjectName()]; + std::set::iterator t = targets.begin(); + for(; t != targets.end(); ++t) { - lg3 = static_cast - (this->LocalGenerators[i]); - // for each target Generate the rule files for each target. - cmTargets& targets = lg3->GetMakefile()->GetTargets(); - for(cmTargets::iterator t = targets.begin(); t != targets.end(); ++t) - { - if((t->second.GetType() == cmTarget::EXECUTABLE) || - (t->second.GetType() == cmTarget::STATIC_LIBRARY) || - (t->second.GetType() == cmTarget::SHARED_LIBRARY) || - (t->second.GetType() == cmTarget::MODULE_LIBRARY) || - (t->second.GetType() == cmTarget::UTILITY)) - { - if (!t->second.GetPropertyAsBool("EXCLUDE_FROM_ALL")) - { - std::vector &progFiles = lg3->ProgressFiles[t->first]; - result += static_cast(progFiles.size()); - } - } - } + cmTarget* target = *t; + cmLocalUnixMakefileGenerator3 *lg3 = + static_cast + (target->GetMakefile()->GetLocalGenerator()); + std::vector &progFiles = lg3->ProgressFiles[target->GetName()]; + result += static_cast(progFiles.size()); } } + // for subdirectories else { std::deque lg3Stack;