Genex: Port some access API to cmGeneratorTarget.

This commit is contained in:
Stephen Kelly 2015-10-10 18:41:51 +02:00
parent 6d27a3dbfb
commit c4ae157865
8 changed files with 39 additions and 40 deletions

View File

@ -84,13 +84,14 @@ std::string cmExportTryCompileFileGenerator::FindTargets(
false, &gDummyHead, false, &gDummyHead,
gtgt, &dagChecker); gtgt, &dagChecker);
const std::set<cmTarget const*> &allTargets = cge->GetAllTargetsSeen(); const std::set<cmGeneratorTarget const*> &allTargets =
for(std::set<cmTarget const*>::const_iterator li = allTargets.begin(); cge->GetAllTargetsSeen();
li != allTargets.end(); ++li) for(std::set<cmGeneratorTarget const*>::const_iterator li =
allTargets.begin(); li != allTargets.end(); ++li)
{ {
if(emitted.insert(*li).second) if(emitted.insert((*li)->Target).second)
{ {
this->Exports.push_back(*li); this->Exports.push_back((*li)->Target);
} }
} }
return result; return result;

View File

@ -11,10 +11,9 @@
============================================================================*/ ============================================================================*/
#include "cmGeneratorExpression.h" #include "cmGeneratorExpression.h"
#include "cmMakefile.h"
#include "cmTarget.h"
#include "assert.h" #include "assert.h"
#include "cmAlgorithms.h" #include "cmAlgorithms.h"
#include "cmSystemTools.h"
#include "cmGeneratorExpressionEvaluator.h" #include "cmGeneratorExpressionEvaluator.h"
#include "cmGeneratorExpressionLexer.h" #include "cmGeneratorExpressionLexer.h"
@ -463,10 +462,11 @@ bool cmGeneratorExpression::IsValidTargetName(const std::string &input)
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
void void
cmCompiledGeneratorExpression::GetMaxLanguageStandard(cmTarget const* tgt, cmCompiledGeneratorExpression::GetMaxLanguageStandard(
const cmGeneratorTarget* tgt,
std::map<std::string, std::string>& mapping) std::map<std::string, std::string>& mapping)
{ {
typedef std::map<cmTarget const*, typedef std::map<cmGeneratorTarget const*,
std::map<std::string, std::string> > MapType; std::map<std::string, std::string> > MapType;
MapType::const_iterator it = this->MaxLanguageStandard.find(tgt); MapType::const_iterator it = this->MaxLanguageStandard.find(tgt);
if (it != this->MaxLanguageStandard.end()) if (it != this->MaxLanguageStandard.end())

View File

@ -19,7 +19,6 @@
#include <cmsys/RegularExpression.hxx> #include <cmsys/RegularExpression.hxx>
#include <cmsys/auto_ptr.hxx> #include <cmsys/auto_ptr.hxx>
class cmTarget;
class cmGeneratorTarget; class cmGeneratorTarget;
class cmLocalGenerator; class cmLocalGenerator;
class cmListFileBacktrace; class cmListFileBacktrace;
@ -92,13 +91,13 @@ public:
std::string const& language = std::string()) const; std::string const& language = std::string()) const;
/** Get set of targets found during evaluations. */ /** Get set of targets found during evaluations. */
std::set<cmTarget*> const& GetTargets() const std::set<cmGeneratorTarget*> const& GetTargets() const
{ return this->DependTargets; } { return this->DependTargets; }
std::set<std::string> const& GetSeenTargetProperties() const std::set<std::string> const& GetSeenTargetProperties() const
{ return this->SeenTargetProperties; } { return this->SeenTargetProperties; }
std::set<cmTarget const*> const& GetAllTargetsSeen() const std::set<cmGeneratorTarget const*> const& GetAllTargetsSeen() const
{ return this->AllTargetsSeen; } { return this->AllTargetsSeen; }
~cmCompiledGeneratorExpression(); ~cmCompiledGeneratorExpression();
@ -120,7 +119,7 @@ public:
{ {
return this->HadHeadSensitiveCondition; return this->HadHeadSensitiveCondition;
} }
std::set<cmTarget const*> GetSourceSensitiveTargets() const std::set<cmGeneratorTarget const*> GetSourceSensitiveTargets() const
{ {
return this->SourceSensitiveTargets; return this->SourceSensitiveTargets;
} }
@ -130,7 +129,7 @@ public:
this->EvaluateForBuildsystem = eval; this->EvaluateForBuildsystem = eval;
} }
void GetMaxLanguageStandard(cmTarget const* tgt, void GetMaxLanguageStandard(cmGeneratorTarget const* tgt,
std::map<std::string, std::string>& mapping); std::map<std::string, std::string>& mapping);
private: private:
@ -150,15 +149,15 @@ private:
const std::string Input; const std::string Input;
bool NeedsEvaluation; bool NeedsEvaluation;
mutable std::set<cmTarget*> DependTargets; mutable std::set<cmGeneratorTarget*> DependTargets;
mutable std::set<cmTarget const*> AllTargetsSeen; mutable std::set<cmGeneratorTarget const*> AllTargetsSeen;
mutable std::set<std::string> SeenTargetProperties; mutable std::set<std::string> SeenTargetProperties;
mutable std::map<cmTarget const*, std::map<std::string, std::string> > mutable std::map<cmGeneratorTarget const*,
MaxLanguageStandard; std::map<std::string, std::string> > MaxLanguageStandard;
mutable std::string Output; mutable std::string Output;
mutable bool HadContextSensitiveCondition; mutable bool HadContextSensitiveCondition;
mutable bool HadHeadSensitiveCondition; mutable bool HadHeadSensitiveCondition;
mutable std::set<cmTarget const*> SourceSensitiveTargets; mutable std::set<cmGeneratorTarget const*> SourceSensitiveTargets;
bool EvaluateForBuildsystem; bool EvaluateForBuildsystem;
}; };

View File

@ -18,7 +18,6 @@
#include <map> #include <map>
#include <string> #include <string>
class cmTarget;
class cmGeneratorTarget; class cmGeneratorTarget;
class cmLocalGenerator; class cmLocalGenerator;
@ -34,11 +33,11 @@ struct cmGeneratorExpressionContext
cmListFileBacktrace Backtrace; cmListFileBacktrace Backtrace;
std::set<cmTarget*> DependTargets; std::set<cmGeneratorTarget*> DependTargets;
std::set<cmTarget const*> AllTargets; std::set<cmGeneratorTarget const*> AllTargets;
std::set<std::string> SeenTargetProperties; std::set<std::string> SeenTargetProperties;
std::set<cmTarget const*> SourceSensitiveTargets; std::set<cmGeneratorTarget const*> SourceSensitiveTargets;
std::map<cmTarget const*, std::map<std::string, std::string> > std::map<cmGeneratorTarget const*, std::map<std::string, std::string> >
MaxLanguageStandard; MaxLanguageStandard;
cmLocalGenerator *LG; cmLocalGenerator *LG;
std::string Config; std::string Config;

View File

@ -964,7 +964,7 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
reportError(context, content->GetOriginalExpression(), e.str()); reportError(context, content->GetOriginalExpression(), e.str());
return std::string(); return std::string();
} }
context->AllTargets.insert(target->Target); context->AllTargets.insert(target);
} }
if (target == context->HeadTarget) if (target == context->HeadTarget)
@ -977,7 +977,7 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
} }
if (propertyName == "SOURCES") if (propertyName == "SOURCES")
{ {
context->SourceSensitiveTargets.insert(target->Target); context->SourceSensitiveTargets.insert(target);
} }
if (propertyName.empty()) if (propertyName.empty())
@ -1412,7 +1412,7 @@ static const struct CompileFeaturesNode : public cmGeneratorExpressionNode
l = standardDefault; l = standardDefault;
} }
assert(l); assert(l);
context->MaxLanguageStandard[target->Target][lit->first] = l; context->MaxLanguageStandard[target][lit->first] = l;
} }
else else
{ {
@ -1756,8 +1756,8 @@ struct TargetFilesystemArtifact : public cmGeneratorExpressionNode
"be used while evaluating link libraries"); "be used while evaluating link libraries");
return std::string(); return std::string();
} }
context->DependTargets.insert(target->Target); context->DependTargets.insert(target);
context->AllTargets.insert(target->Target); context->AllTargets.insert(target);
std::string result = std::string result =
TargetFilesystemArtifactResultCreator<ArtifactT>::Create( TargetFilesystemArtifactResultCreator<ArtifactT>::Create(

View File

@ -2173,9 +2173,9 @@ cmTargetTraceDependencies
si != sources.end(); ++si) si != sources.end(); ++si)
{ {
cmSourceFile* sf = *si; cmSourceFile* sf = *si;
const std::set<cmTarget const*> tgts = const std::set<cmGeneratorTarget const*> tgts =
this->GlobalGenerator->GetFilenameTargetDepends(sf); this->GlobalGenerator->GetFilenameTargetDepends(sf);
if (tgts.find(this->Target) != tgts.end()) if (tgts.find(this->GeneratorTarget) != tgts.end())
{ {
std::ostringstream e; std::ostringstream e;
e << "Evaluation output file\n \"" << sf->GetFullPath() e << "Evaluation output file\n \"" << sf->GetFullPath()
@ -2353,7 +2353,7 @@ cmTargetTraceDependencies
cmGeneratorExpression ge(cc.GetBacktrace()); cmGeneratorExpression ge(cc.GetBacktrace());
// Add target-level dependencies referenced by generator expressions. // Add target-level dependencies referenced by generator expressions.
std::set<cmTarget*> targets; std::set<cmGeneratorTarget*> targets;
for(cmCustomCommandLines::const_iterator cit = cc.GetCommandLines().begin(); for(cmCustomCommandLines::const_iterator cit = cc.GetCommandLines().begin();
cit != cc.GetCommandLines().end(); ++cit) cit != cc.GetCommandLines().end(); ++cit)
@ -2379,12 +2379,12 @@ cmTargetTraceDependencies
const cmsys::auto_ptr<cmCompiledGeneratorExpression> cge const cmsys::auto_ptr<cmCompiledGeneratorExpression> cge
= ge.Parse(*cli); = ge.Parse(*cli);
cge->Evaluate(this->GeneratorTarget->GetLocalGenerator(), "", true); cge->Evaluate(this->GeneratorTarget->GetLocalGenerator(), "", true);
std::set<cmTarget*> geTargets = cge->GetTargets(); std::set<cmGeneratorTarget*> geTargets = cge->GetTargets();
targets.insert(geTargets.begin(), geTargets.end()); targets.insert(geTargets.begin(), geTargets.end());
} }
} }
for(std::set<cmTarget*>::iterator ti = targets.begin(); for(std::set<cmGeneratorTarget*>::iterator ti = targets.begin();
ti != targets.end(); ++ti) ti != targets.end(); ++ti)
{ {
this->Target->AddUtility((*ti)->GetName()); this->Target->AddUtility((*ti)->GetName());
@ -5412,7 +5412,7 @@ void cmGeneratorTarget::ComputeLinkImplementationLibraries(
this->LinkImplicitNullProperties.insert(*it); this->LinkImplicitNullProperties.insert(*it);
} }
} }
cge->GetMaxLanguageStandard(this->Target, cge->GetMaxLanguageStandard(this,
this->MaxLanguageStandards); this->MaxLanguageStandards);
} }

View File

@ -3029,13 +3029,13 @@ std::string cmGlobalGenerator::EscapeJSON(const std::string& s) {
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
void cmGlobalGenerator::SetFilenameTargetDepends(cmSourceFile* sf, void cmGlobalGenerator::SetFilenameTargetDepends(cmSourceFile* sf,
std::set<cmTarget const*> tgts) std::set<cmGeneratorTarget const*> tgts)
{ {
this->FilenameTargetDepends[sf] = tgts; this->FilenameTargetDepends[sf] = tgts;
} }
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
std::set<cmTarget const*> const& std::set<cmGeneratorTarget const*> const&
cmGlobalGenerator::GetFilenameTargetDepends(cmSourceFile* sf) const { cmGlobalGenerator::GetFilenameTargetDepends(cmSourceFile* sf) const {
return this->FilenameTargetDepends[sf]; return this->FilenameTargetDepends[sf];
} }

View File

@ -354,8 +354,8 @@ public:
void CreateEvaluationSourceFiles(std::string const& config) const; void CreateEvaluationSourceFiles(std::string const& config) const;
void SetFilenameTargetDepends(cmSourceFile* sf, void SetFilenameTargetDepends(cmSourceFile* sf,
std::set<cmTarget const*> tgts); std::set<const cmGeneratorTarget*> tgts);
std::set<cmTarget const*> const& const std::set<const cmGeneratorTarget*>&
GetFilenameTargetDepends(cmSourceFile* sf) const; GetFilenameTargetDepends(cmSourceFile* sf) const;
#if defined(CMAKE_BUILD_WITH_CMAKE) #if defined(CMAKE_BUILD_WITH_CMAKE)
@ -508,7 +508,7 @@ private:
// track targets to issue CMP0042 warning for. // track targets to issue CMP0042 warning for.
std::set<std::string> CMP0042WarnTargets; std::set<std::string> CMP0042WarnTargets;
mutable std::map<cmSourceFile*, std::set<cmTarget const*> > mutable std::map<cmSourceFile*, std::set<cmGeneratorTarget const*> >
FilenameTargetDepends; FilenameTargetDepends;
#if defined(CMAKE_BUILD_WITH_CMAKE) #if defined(CMAKE_BUILD_WITH_CMAKE)