cmGeneratorExpressionNode: Simplify EvaluateDependentExpression signature

The local generator is available in the evaluation context.
This commit is contained in:
Brad King
2025-09-19 18:00:53 -04:00
parent fe8e82090b
commit 905cfcfa12
3 changed files with 13 additions and 13 deletions

View File

@@ -52,18 +52,19 @@
#include "cmake.h"
std::string cmGeneratorExpressionNode::EvaluateDependentExpression(
std::string const& prop, cmLocalGenerator const* lg,
cmGeneratorExpressionContext* context, cmGeneratorTarget const* headTarget,
std::string const& prop, cmGeneratorExpressionContext* context,
cmGeneratorTarget const* headTarget,
cmGeneratorExpressionDAGChecker* dagChecker,
cmGeneratorTarget const* currentTarget)
{
cmGeneratorExpression ge(*lg->GetCMakeInstance(), context->Backtrace);
cmGeneratorExpression ge(*context->LG->GetCMakeInstance(),
context->Backtrace);
std::unique_ptr<cmCompiledGeneratorExpression> cge = ge.Parse(prop);
cge->SetEvaluateForBuildsystem(context->EvaluateForBuildsystem);
cge->SetQuiet(context->Quiet);
std::string result =
cge->Evaluate(lg, context->Config, headTarget, dagChecker, currentTarget,
context->Language);
cge->Evaluate(context->LG, context->Config, headTarget, dagChecker,
currentTarget, context->Language);
if (cge->GetHadContextSensitiveCondition()) {
context->HadContextSensitiveCondition = true;
}
@@ -504,12 +505,12 @@ protected:
}
return this->EvaluateDependentExpression(
expression, context->LG, context, context->HeadTarget, &dagChecker,
expression, context, context->HeadTarget, &dagChecker,
context->CurrentTarget);
}
return this->EvaluateDependentExpression(
expression, context->LG, context, context->HeadTarget, dagCheckerParent,
expression, context, context->HeadTarget, dagCheckerParent,
context->CurrentTarget);
}
};
@@ -3083,8 +3084,8 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
// transitive link closure as an ordered list.
if (!interfacePropertyName.empty()) {
result = cmGeneratorExpression::StripEmptyListElements(
this->EvaluateDependentExpression(result, context->LG, context, target,
&dagChecker, target));
this->EvaluateDependentExpression(result, context, target, &dagChecker,
target));
std::string linkedTargetsContent = getLinkedTargetsContent(
target, interfacePropertyName, context, &dagChecker, usage);
if (!linkedTargetsContent.empty()) {

View File

@@ -8,7 +8,6 @@
#include <vector>
class cmGeneratorTarget;
class cmLocalGenerator;
struct GeneratorExpressionContent;
struct cmGeneratorExpressionContext;
struct cmGeneratorExpressionDAGChecker;
@@ -46,8 +45,8 @@ struct cmGeneratorExpressionNode
cmGeneratorExpressionDAGChecker* dagChecker) const = 0;
static std::string EvaluateDependentExpression(
std::string const& prop, cmLocalGenerator const* lg,
cmGeneratorExpressionContext* context, cmGeneratorTarget const* headTarget,
std::string const& prop, cmGeneratorExpressionContext* context,
cmGeneratorTarget const* headTarget,
cmGeneratorExpressionDAGChecker* dagChecker,
cmGeneratorTarget const* currentTarget);

View File

@@ -138,7 +138,7 @@ std::string cmGeneratorTarget::EvaluateInterfaceProperty(
if (cmValue p = this->GetProperty(prop)) {
result = cmGeneratorExpressionNode::EvaluateDependentExpression(
*p, context->LG, context, headTarget, &dagChecker, this);
*p, context, headTarget, &dagChecker, this);
}
if (cmLinkInterfaceLibraries const* iface =