diff options
author | Stephen Kelly <steveire@gmail.com> | 2015-06-06 13:24:24 (GMT) |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2015-07-01 17:46:19 (GMT) |
commit | d4a8a554ea2b3af2ea850cf003e35ac23118a33b (patch) | |
tree | eb0e9171131c216ad11c493ab34ca760c569d360 | |
parent | faec4e611d08ea2f75d2127e3ca3f5e9a427465b (diff) | |
download | CMake-d4a8a554ea2b3af2ea850cf003e35ac23118a33b.zip CMake-d4a8a554ea2b3af2ea850cf003e35ac23118a33b.tar.gz CMake-d4a8a554ea2b3af2ea850cf003e35ac23118a33b.tar.bz2 |
cmGlobalGenerator: Map local generators to generator targets.
-rw-r--r-- | Source/cmGlobalGenerator.cxx | 9 | ||||
-rw-r--r-- | Source/cmGlobalGenerator.h | 2 | ||||
-rw-r--r-- | Source/cmGlobalUnixMakefileGenerator3.cxx | 15 | ||||
-rw-r--r-- | Source/cmGlobalUnixMakefileGenerator3.h | 2 |
4 files changed, 13 insertions, 15 deletions
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index a69732e..f310744 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -2043,20 +2043,19 @@ void cmGlobalGenerator::FillLocalGeneratorToTargetMap() clg = clg->GetParent()) { // This local generator includes the target. - std::set<cmTarget const*>& targetSet = + std::set<cmGeneratorTarget const*>& targetSet = this->LocalGeneratorToTargetMap[clg]; - targetSet.insert(&target); + cmGeneratorTarget* gt = this->GetGeneratorTarget(&target); + targetSet.insert(gt); // Add dependencies of the included target. An excluded // target may still be included if it is a dependency of a // non-excluded target. - cmGeneratorTarget* gt = this->GetGeneratorTarget(&target); TargetDependSet const& tgtdeps = this->GetTargetDirectDepends(gt); for(TargetDependSet::const_iterator ti = tgtdeps.begin(); ti != tgtdeps.end(); ++ti) { - cmGeneratorTarget const* ttt = *ti; - targetSet.insert(ttt->Target); + targetSet.insert(*ti); } } } diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h index f86e825..398335b 100644 --- a/Source/cmGlobalGenerator.h +++ b/Source/cmGlobalGenerator.h @@ -406,7 +406,7 @@ protected: cmMakefile* CurrentMakefile; // map from project name to vector of local generators in that project std::map<std::string, std::vector<cmLocalGenerator*> > ProjectMap; - std::map<cmLocalGenerator*, std::set<cmTarget const*> > + std::map<cmLocalGenerator*, std::set<cmGeneratorTarget const*> > LocalGeneratorToTargetMap; // Set of named installation components requested by the project. diff --git a/Source/cmGlobalUnixMakefileGenerator3.cxx b/Source/cmGlobalUnixMakefileGenerator3.cxx index 412728f..e6a67d3 100644 --- a/Source/cmGlobalUnixMakefileGenerator3.cxx +++ b/Source/cmGlobalUnixMakefileGenerator3.cxx @@ -830,7 +830,7 @@ cmGlobalUnixMakefileGenerator3 cmLocalGenerator::FULL, cmLocalGenerator::SHELL); // - std::set<cmTarget const*> emitted; + std::set<cmGeneratorTarget const*> emitted; progCmd << " " << this->CountProgressMarksInTarget(gtarget, emitted); commands.push_back(progCmd.str()); @@ -909,10 +909,10 @@ cmGlobalUnixMakefileGenerator3 size_t cmGlobalUnixMakefileGenerator3 ::CountProgressMarksInTarget(cmGeneratorTarget const* target, - std::set<cmTarget const*>& emitted) + std::set<cmGeneratorTarget const*>& emitted) { size_t count = 0; - if(emitted.insert(target->Target).second) + if(emitted.insert(target).second) { count = this->ProgressMap[target->Target].Marks.size(); TargetDependSet const& depends = this->GetTargetDirectDepends(target); @@ -935,14 +935,13 @@ cmGlobalUnixMakefileGenerator3 ::CountProgressMarksInAll(cmLocalUnixMakefileGenerator3* lg) { size_t count = 0; - std::set<cmTarget const*> emitted; - std::set<cmTarget const*> const& targets + std::set<cmGeneratorTarget const*> emitted; + std::set<cmGeneratorTarget const*> const& targets = this->LocalGeneratorToTargetMap[lg]; - for(std::set<cmTarget const*>::const_iterator t = targets.begin(); + for(std::set<cmGeneratorTarget const*>::const_iterator t = targets.begin(); t != targets.end(); ++t) { - cmGeneratorTarget* gt = this->GetGeneratorTarget(*t); - count += this->CountProgressMarksInTarget(gt, emitted); + count += this->CountProgressMarksInTarget(*t, emitted); } return count; } diff --git a/Source/cmGlobalUnixMakefileGenerator3.h b/Source/cmGlobalUnixMakefileGenerator3.h index 8805011..14adf2e 100644 --- a/Source/cmGlobalUnixMakefileGenerator3.h +++ b/Source/cmGlobalUnixMakefileGenerator3.h @@ -199,7 +199,7 @@ protected: ProgressMapType ProgressMap; size_t CountProgressMarksInTarget(cmGeneratorTarget const* target, - std::set<cmTarget const*>& emitted); + std::set<cmGeneratorTarget const*>& emitted); size_t CountProgressMarksInAll(cmLocalUnixMakefileGenerator3* lg); cmGeneratedFileStream *CommandDatabase; |