diff options
Diffstat (limited to 'Source/cmGlobalUnixMakefileGenerator3.cxx')
-rw-r--r-- | Source/cmGlobalUnixMakefileGenerator3.cxx | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/Source/cmGlobalUnixMakefileGenerator3.cxx b/Source/cmGlobalUnixMakefileGenerator3.cxx index dd1e38e..9b3c5d5 100644 --- a/Source/cmGlobalUnixMakefileGenerator3.cxx +++ b/Source/cmGlobalUnixMakefileGenerator3.cxx @@ -750,7 +750,7 @@ cmGlobalUnixMakefileGenerator3 cmLocalGenerator::FULL, cmLocalGenerator::SHELL); progCmd << " "; - std::vector<int> &progFiles = this->ProgressMap[t->first].Marks; + std::vector<int> &progFiles = this->ProgressMap[&t->second].Marks; for (std::vector<int>::iterator i = progFiles.begin(); i != progFiles.end(); ++i) { @@ -873,7 +873,7 @@ cmGlobalUnixMakefileGenerator3 size_t count = 0; if(emitted.insert(target).second) { - count = this->ProgressMap[target->GetName()].Marks.size(); + count = this->ProgressMap[target].Marks.size(); TargetDependSet const& depends = this->GetTargetDirectDepends(*target); for(TargetDependSet::const_iterator di = depends.begin(); di != depends.end(); ++di) @@ -905,12 +905,27 @@ void cmGlobalUnixMakefileGenerator3::RecordTargetProgress( cmMakefileTargetGenerator* tg) { - TargetProgress& tp = this->ProgressMap[tg->GetTarget()->GetName()]; + TargetProgress& tp = this->ProgressMap[tg->GetTarget()]; tp.NumberOfActions = tg->GetNumberOfProgressActions(); tp.VariableFile = tg->GetProgressFileNameFull(); } //---------------------------------------------------------------------------- +bool +cmGlobalUnixMakefileGenerator3::ProgressMapCompare +::operator()(cmTarget* l, cmTarget* r) +{ + // Order by target name. + if(int c = strcmp(l->GetName(), r->GetName())) + { + return c < 0; + } + // Order duplicate targets by binary directory. + return strcmp(l->GetMakefile()->GetCurrentOutputDirectory(), + r->GetMakefile()->GetCurrentOutputDirectory()) < 0; +} + +//---------------------------------------------------------------------------- void cmGlobalUnixMakefileGenerator3::TargetProgress ::WriteProgressVariables(unsigned long total, unsigned long ¤t) |