diff options
author | Stephen Kelly <steveire@gmail.com> | 2015-10-25 11:52:46 (GMT) |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2015-10-27 06:44:24 (GMT) |
commit | def6da616b81958c9f1058a4e520ac3cbc534757 (patch) | |
tree | d2586262b7f973e0d3c095c810ec829e815a9f4d /Source/cmLocalGenerator.cxx | |
parent | a67231ac114235f0af4673235c4c07fa896c8ab6 (diff) | |
download | CMake-def6da616b81958c9f1058a4e520ac3cbc534757.zip CMake-def6da616b81958c9f1058a4e520ac3cbc534757.tar.gz CMake-def6da616b81958c9f1058a4e520ac3cbc534757.tar.bz2 |
cmLocalGenerator: Port FindGeneratorTarget away from GetGeneratorTarget
Diffstat (limited to 'Source/cmLocalGenerator.cxx')
-rw-r--r-- | Source/cmLocalGenerator.cxx | 40 |
1 files changed, 38 insertions, 2 deletions
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index b5f5ce9..9d5335e 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -51,6 +51,8 @@ cmLocalGenerator::cmLocalGenerator(cmGlobalGenerator* gg, this->Makefile = makefile; + this->AliasTargets = makefile->GetAliasTargets(); + this->EmitUniversalBinaryFlags = true; this->BackwardsCompatibility = 0; this->BackwardsCompatibilityFinal = false; @@ -453,11 +455,45 @@ void cmLocalGenerator::AddGeneratorTarget(cmGeneratorTarget* gt) this->GeneratorTargets.push_back(gt); } +struct NamedGeneratorTargetFinder +{ + NamedGeneratorTargetFinder(std::string const& name) + : Name(name) + { + + } + + bool operator()(cmGeneratorTarget* tgt) + { + return tgt->GetName() == this->Name; + } +private: + std::string Name; +}; + cmGeneratorTarget* cmLocalGenerator::FindGeneratorTarget( const std::string& name) const { - return this->GetGlobalGenerator()->GetGeneratorTarget( - this->Makefile->FindTarget(name)); + std::map<std::string, std::string>::const_iterator i = + this->AliasTargets.find(name); + if (i != this->AliasTargets.end()) + { + std::vector<cmGeneratorTarget*>::const_iterator ai = + std::find_if(this->GeneratorTargets.begin(), + this->GeneratorTargets.end(), + NamedGeneratorTargetFinder(i->second)); + return *ai; + } + std::vector<cmGeneratorTarget*>::const_iterator ti = + std::find_if(this->GeneratorTargets.begin(), + this->GeneratorTargets.end(), + NamedGeneratorTargetFinder(name)); + if ( ti != this->GeneratorTargets.end() ) + { + return *ti; + } + + return 0; } //---------------------------------------------------------------------------- |