diff --git a/Source/cmComputeLinkDepends.cxx b/Source/cmComputeLinkDepends.cxx index 060c4e9f2e..492d877ab8 100644 --- a/Source/cmComputeLinkDepends.cxx +++ b/Source/cmComputeLinkDepends.cxx @@ -584,13 +584,13 @@ cmComputeLinkDepends::cmComputeLinkDepends(const cmGeneratorTarget* target, if (!feature->empty() && key.length() > lloPrefix.length()) { auto item = key.substr(lloPrefix.length()); cmGeneratorExpressionDAGChecker dagChecker{ - this->Target->GetBacktrace(), this->Target, "LINK_LIBRARY_OVERRIDE", nullptr, nullptr, this->Target->GetLocalGenerator(), config, + this->Target->GetBacktrace(), }; auto overrideFeature = cmGeneratorExpression::Evaluate( *feature, this->Target->GetLocalGenerator(), config, @@ -604,13 +604,13 @@ cmComputeLinkDepends::cmComputeLinkDepends(const cmGeneratorTarget* target, if (cmValue linkLibraryOverride = this->Target->GetProperty("LINK_LIBRARY_OVERRIDE")) { cmGeneratorExpressionDAGChecker dagChecker{ - target->GetBacktrace(), target, "LINK_LIBRARY_OVERRIDE", nullptr, nullptr, target->GetLocalGenerator(), config, + target->GetBacktrace(), }; auto overrideValue = cmGeneratorExpression::Evaluate( *linkLibraryOverride, target->GetLocalGenerator(), config, target, diff --git a/Source/cmGeneratorExpressionDAGChecker.cxx b/Source/cmGeneratorExpressionDAGChecker.cxx index aad25f032d..8e28b425ca 100644 --- a/Source/cmGeneratorExpressionDAGChecker.cxx +++ b/Source/cmGeneratorExpressionDAGChecker.cxx @@ -19,20 +19,9 @@ cmGeneratorExpressionDAGChecker::cmGeneratorExpressionDAGChecker( cmGeneratorTarget const* target, std::string property, - const GeneratorExpressionContent* content, + GeneratorExpressionContent const* content, cmGeneratorExpressionDAGChecker* parent, cmLocalGenerator const* contextLG, - std::string const& contextConfig) - : cmGeneratorExpressionDAGChecker(cmListFileBacktrace(), target, - std::move(property), content, parent, - contextLG, contextConfig) -{ -} - -cmGeneratorExpressionDAGChecker::cmGeneratorExpressionDAGChecker( - cmListFileBacktrace backtrace, cmGeneratorTarget const* target, - std::string property, const GeneratorExpressionContent* content, - cmGeneratorExpressionDAGChecker* parent, cmLocalGenerator const* contextLG, - std::string const& contextConfig) + std::string const& contextConfig, cmListFileBacktrace backtrace) : Parent(parent) , Top(parent ? parent->Top : this) , Target(target) diff --git a/Source/cmGeneratorExpressionDAGChecker.h b/Source/cmGeneratorExpressionDAGChecker.h index 8b0eea76b4..5b4e6d6580 100644 --- a/Source/cmGeneratorExpressionDAGChecker.h +++ b/Source/cmGeneratorExpressionDAGChecker.h @@ -17,19 +17,12 @@ class cmLocalGenerator; struct cmGeneratorExpressionDAGChecker { - cmGeneratorExpressionDAGChecker(cmListFileBacktrace backtrace, - cmGeneratorTarget const* target, - std::string property, - const GeneratorExpressionContent* content, - cmGeneratorExpressionDAGChecker* parent, - cmLocalGenerator const* contextLG, - std::string const& contextConfig); - cmGeneratorExpressionDAGChecker(cmGeneratorTarget const* target, - std::string property, - const GeneratorExpressionContent* content, - cmGeneratorExpressionDAGChecker* parent, - cmLocalGenerator const* contextLG, - std::string const& contextConfig); + cmGeneratorExpressionDAGChecker( + cmGeneratorTarget const* target, std::string property, + GeneratorExpressionContent const* content, + cmGeneratorExpressionDAGChecker* parent, cmLocalGenerator const* contextLG, + std::string const& contextConfig, + cmListFileBacktrace backtrace = cmListFileBacktrace()); enum Result { diff --git a/Source/cmGeneratorExpressionNode.cxx b/Source/cmGeneratorExpressionNode.cxx index c18a3887e3..8bd263ddf8 100644 --- a/Source/cmGeneratorExpressionNode.cxx +++ b/Source/cmGeneratorExpressionNode.cxx @@ -486,13 +486,13 @@ protected: { if (context->HeadTarget) { cmGeneratorExpressionDAGChecker dagChecker{ - context->Backtrace, context->HeadTarget, genexOperator + ":" + expression, content, dagCheckerParent, context->LG, context->Config, + context->Backtrace, }; switch (dagChecker.Check()) { case cmGeneratorExpressionDAGChecker::SELF_REFERENCE: @@ -2993,8 +2993,13 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode } cmGeneratorExpressionDAGChecker dagChecker{ - context->Backtrace, target, propertyName, content, - dagCheckerParent, context->LG, context->Config, + target, + propertyName, + content, + dagCheckerParent, + context->LG, + context->Config, + context->Backtrace, }; switch (dagChecker.Check()) { diff --git a/Source/cmGeneratorTarget_IncludeDirectories.cxx b/Source/cmGeneratorTarget_IncludeDirectories.cxx index 4bcb2c7588..571211d364 100644 --- a/Source/cmGeneratorTarget_IncludeDirectories.cxx +++ b/Source/cmGeneratorTarget_IncludeDirectories.cxx @@ -48,8 +48,13 @@ std::string AddLangSpecificInterfaceIncludeDirectories( cmGeneratorExpressionDAGChecker* context) { cmGeneratorExpressionDAGChecker dagChecker{ - target->GetBacktrace(), target, propertyName, nullptr, context, - target->GetLocalGenerator(), config, + target, + propertyName, + nullptr, + context, + target->GetLocalGenerator(), + config, + target->GetBacktrace(), }; switch (dagChecker.Check()) { case cmGeneratorExpressionDAGChecker::SELF_REFERENCE: @@ -101,8 +106,13 @@ void AddLangSpecificImplicitIncludeDirectories( if (const auto* libraries = target->GetLinkImplementationLibraries(config, UseTo::Compile)) { cmGeneratorExpressionDAGChecker dagChecker{ - target->GetBacktrace(), target, propertyName, nullptr, nullptr, - target->GetLocalGenerator(), config, + target, + propertyName, + nullptr, + nullptr, + target->GetLocalGenerator(), + config, + target->GetBacktrace(), }; for (const cmLinkImplItem& library : libraries->Libraries) { diff --git a/Source/cmGeneratorTarget_TransitiveProperty.cxx b/Source/cmGeneratorTarget_TransitiveProperty.cxx index d88a5b55cb..8c5d9bd25a 100644 --- a/Source/cmGeneratorTarget_TransitiveProperty.cxx +++ b/Source/cmGeneratorTarget_TransitiveProperty.cxx @@ -110,13 +110,13 @@ std::string cmGeneratorTarget::EvaluateInterfaceProperty( // a subset of TargetPropertyNode::Evaluate without stringify/parse steps // but sufficient for transitive interface properties. cmGeneratorExpressionDAGChecker dagChecker{ - context->Backtrace, this, prop, nullptr, dagCheckerParent, this->LocalGenerator, context->Config, + context->Backtrace, }; switch (dagChecker.Check()) { case cmGeneratorExpressionDAGChecker::SELF_REFERENCE: