diff --git a/Source/cmExportTryCompileFileGenerator.cxx b/Source/cmExportTryCompileFileGenerator.cxx index f8dbe314c..fe5717a0e 100644 --- a/Source/cmExportTryCompileFileGenerator.cxx +++ b/Source/cmExportTryCompileFileGenerator.cxx @@ -84,13 +84,14 @@ std::string cmExportTryCompileFileGenerator::FindTargets( false, &gDummyHead, gtgt, &dagChecker); - const std::set &allTargets = cge->GetAllTargetsSeen(); - for(std::set::const_iterator li = allTargets.begin(); - li != allTargets.end(); ++li) + const std::set &allTargets = + cge->GetAllTargetsSeen(); + for(std::set::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; diff --git a/Source/cmGeneratorExpression.cxx b/Source/cmGeneratorExpression.cxx index d9f67f20f..6796a011f 100644 --- a/Source/cmGeneratorExpression.cxx +++ b/Source/cmGeneratorExpression.cxx @@ -11,10 +11,9 @@ ============================================================================*/ #include "cmGeneratorExpression.h" -#include "cmMakefile.h" -#include "cmTarget.h" #include "assert.h" #include "cmAlgorithms.h" +#include "cmSystemTools.h" #include "cmGeneratorExpressionEvaluator.h" #include "cmGeneratorExpressionLexer.h" @@ -463,10 +462,11 @@ bool cmGeneratorExpression::IsValidTargetName(const std::string &input) //---------------------------------------------------------------------------- void -cmCompiledGeneratorExpression::GetMaxLanguageStandard(cmTarget const* tgt, +cmCompiledGeneratorExpression::GetMaxLanguageStandard( + const cmGeneratorTarget* tgt, std::map& mapping) { - typedef std::map > MapType; MapType::const_iterator it = this->MaxLanguageStandard.find(tgt); if (it != this->MaxLanguageStandard.end()) diff --git a/Source/cmGeneratorExpression.h b/Source/cmGeneratorExpression.h index d64d6baa1..efd381b53 100644 --- a/Source/cmGeneratorExpression.h +++ b/Source/cmGeneratorExpression.h @@ -19,7 +19,6 @@ #include #include -class cmTarget; class cmGeneratorTarget; class cmLocalGenerator; class cmListFileBacktrace; @@ -92,13 +91,13 @@ public: std::string const& language = std::string()) const; /** Get set of targets found during evaluations. */ - std::set const& GetTargets() const + std::set const& GetTargets() const { return this->DependTargets; } std::set const& GetSeenTargetProperties() const { return this->SeenTargetProperties; } - std::set const& GetAllTargetsSeen() const + std::set const& GetAllTargetsSeen() const { return this->AllTargetsSeen; } ~cmCompiledGeneratorExpression(); @@ -120,7 +119,7 @@ public: { return this->HadHeadSensitiveCondition; } - std::set GetSourceSensitiveTargets() const + std::set GetSourceSensitiveTargets() const { return this->SourceSensitiveTargets; } @@ -130,7 +129,7 @@ public: this->EvaluateForBuildsystem = eval; } - void GetMaxLanguageStandard(cmTarget const* tgt, + void GetMaxLanguageStandard(cmGeneratorTarget const* tgt, std::map& mapping); private: @@ -150,15 +149,15 @@ private: const std::string Input; bool NeedsEvaluation; - mutable std::set DependTargets; - mutable std::set AllTargetsSeen; + mutable std::set DependTargets; + mutable std::set AllTargetsSeen; mutable std::set SeenTargetProperties; - mutable std::map > - MaxLanguageStandard; + mutable std::map > MaxLanguageStandard; mutable std::string Output; mutable bool HadContextSensitiveCondition; mutable bool HadHeadSensitiveCondition; - mutable std::set SourceSensitiveTargets; + mutable std::set SourceSensitiveTargets; bool EvaluateForBuildsystem; }; diff --git a/Source/cmGeneratorExpressionContext.h b/Source/cmGeneratorExpressionContext.h index 934e2e735..e802138bc 100644 --- a/Source/cmGeneratorExpressionContext.h +++ b/Source/cmGeneratorExpressionContext.h @@ -18,7 +18,6 @@ #include #include -class cmTarget; class cmGeneratorTarget; class cmLocalGenerator; @@ -34,11 +33,11 @@ struct cmGeneratorExpressionContext cmListFileBacktrace Backtrace; - std::set DependTargets; - std::set AllTargets; + std::set DependTargets; + std::set AllTargets; std::set SeenTargetProperties; - std::set SourceSensitiveTargets; - std::map > + std::set SourceSensitiveTargets; + std::map > MaxLanguageStandard; cmLocalGenerator *LG; std::string Config; diff --git a/Source/cmGeneratorExpressionNode.cxx b/Source/cmGeneratorExpressionNode.cxx index dcb1c5c2b..8521a15fb 100644 --- a/Source/cmGeneratorExpressionNode.cxx +++ b/Source/cmGeneratorExpressionNode.cxx @@ -964,7 +964,7 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode reportError(context, content->GetOriginalExpression(), e.str()); return std::string(); } - context->AllTargets.insert(target->Target); + context->AllTargets.insert(target); } if (target == context->HeadTarget) @@ -977,7 +977,7 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode } if (propertyName == "SOURCES") { - context->SourceSensitiveTargets.insert(target->Target); + context->SourceSensitiveTargets.insert(target); } if (propertyName.empty()) @@ -1412,7 +1412,7 @@ static const struct CompileFeaturesNode : public cmGeneratorExpressionNode l = standardDefault; } assert(l); - context->MaxLanguageStandard[target->Target][lit->first] = l; + context->MaxLanguageStandard[target][lit->first] = l; } else { @@ -1756,8 +1756,8 @@ struct TargetFilesystemArtifact : public cmGeneratorExpressionNode "be used while evaluating link libraries"); return std::string(); } - context->DependTargets.insert(target->Target); - context->AllTargets.insert(target->Target); + context->DependTargets.insert(target); + context->AllTargets.insert(target); std::string result = TargetFilesystemArtifactResultCreator::Create( diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 6bebc2b27..ca91f5322 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -2173,9 +2173,9 @@ cmTargetTraceDependencies si != sources.end(); ++si) { cmSourceFile* sf = *si; - const std::set tgts = + const std::set tgts = this->GlobalGenerator->GetFilenameTargetDepends(sf); - if (tgts.find(this->Target) != tgts.end()) + if (tgts.find(this->GeneratorTarget) != tgts.end()) { std::ostringstream e; e << "Evaluation output file\n \"" << sf->GetFullPath() @@ -2353,7 +2353,7 @@ cmTargetTraceDependencies cmGeneratorExpression ge(cc.GetBacktrace()); // Add target-level dependencies referenced by generator expressions. - std::set targets; + std::set targets; for(cmCustomCommandLines::const_iterator cit = cc.GetCommandLines().begin(); cit != cc.GetCommandLines().end(); ++cit) @@ -2379,12 +2379,12 @@ cmTargetTraceDependencies const cmsys::auto_ptr cge = ge.Parse(*cli); cge->Evaluate(this->GeneratorTarget->GetLocalGenerator(), "", true); - std::set geTargets = cge->GetTargets(); + std::set geTargets = cge->GetTargets(); targets.insert(geTargets.begin(), geTargets.end()); } } - for(std::set::iterator ti = targets.begin(); + for(std::set::iterator ti = targets.begin(); ti != targets.end(); ++ti) { this->Target->AddUtility((*ti)->GetName()); @@ -5412,7 +5412,7 @@ void cmGeneratorTarget::ComputeLinkImplementationLibraries( this->LinkImplicitNullProperties.insert(*it); } } - cge->GetMaxLanguageStandard(this->Target, + cge->GetMaxLanguageStandard(this, this->MaxLanguageStandards); } diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index e8be2d6a0..3afcb4237 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -3029,13 +3029,13 @@ std::string cmGlobalGenerator::EscapeJSON(const std::string& s) { //---------------------------------------------------------------------------- void cmGlobalGenerator::SetFilenameTargetDepends(cmSourceFile* sf, - std::set tgts) + std::set tgts) { this->FilenameTargetDepends[sf] = tgts; } //---------------------------------------------------------------------------- -std::set const& +std::set const& cmGlobalGenerator::GetFilenameTargetDepends(cmSourceFile* sf) const { return this->FilenameTargetDepends[sf]; } diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h index fc8170862..688740970 100644 --- a/Source/cmGlobalGenerator.h +++ b/Source/cmGlobalGenerator.h @@ -354,8 +354,8 @@ public: void CreateEvaluationSourceFiles(std::string const& config) const; void SetFilenameTargetDepends(cmSourceFile* sf, - std::set tgts); - std::set const& + std::set tgts); + const std::set& GetFilenameTargetDepends(cmSourceFile* sf) const; #if defined(CMAKE_BUILD_WITH_CMAKE) @@ -508,7 +508,7 @@ private: // track targets to issue CMP0042 warning for. std::set CMP0042WarnTargets; - mutable std::map > + mutable std::map > FilenameTargetDepends; #if defined(CMAKE_BUILD_WITH_CMAKE)