浏览代码

cmGeneratorExpressionNode: Simplify EvaluateDependentExpression signature

The local generator is available in the evaluation context.
Brad King 1 月之前
父节点
当前提交
905cfcfa12

+ 10 - 9
Source/cmGeneratorExpressionNode.cxx

@@ -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()) {

+ 2 - 3
Source/cmGeneratorExpressionNode.h

@@ -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);
 

+ 1 - 1
Source/cmGeneratorTarget_TransitiveProperty.cxx

@@ -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 =