diff options
Diffstat (limited to 'Source/cmGlobalUnixMakefileGenerator3.cxx')
-rw-r--r-- | Source/cmGlobalUnixMakefileGenerator3.cxx | 39 |
1 files changed, 14 insertions, 25 deletions
diff --git a/Source/cmGlobalUnixMakefileGenerator3.cxx b/Source/cmGlobalUnixMakefileGenerator3.cxx index d6f0db2..f846f40 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<cmTarget*> &targets = + this->ProjectToTargetMap[lg->GetMakefile()->GetProjectName()]; + std::set<cmTarget*>::iterator t = targets.begin(); + for(; t != targets.end(); ++t) { - lg3 = static_cast<cmLocalUnixMakefileGenerator3 *> - (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<int> &progFiles = lg3->ProgressFiles[t->first]; - result += static_cast<unsigned long>(progFiles.size()); - } - } - } + cmTarget* target = *t; + cmLocalUnixMakefileGenerator3 *lg3 = + static_cast<cmLocalUnixMakefileGenerator3 *> + (target->GetMakefile()->GetLocalGenerator()); + std::vector<int> &progFiles = lg3->ProgressFiles[target->GetName()]; + result += static_cast<unsigned long>(progFiles.size()); } } + // for subdirectories else { std::deque<cmLocalUnixMakefileGenerator3 *> lg3Stack; |