mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-09 15:20:56 -06:00
cmGeneratorExpressionNode: Simplify EvaluateDependentExpression signature
The local generator is available in the evaluation context.
This commit is contained in:
@@ -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()) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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 =
|
||||
|
||||
Reference in New Issue
Block a user