Forráskód Böngészése

Genex: Extend cmGeneratorExpressionContext constructor.

Initialize the members in the appropriate place.
Stephen Kelly 10 éve
szülő
commit
ec428fafcf

+ 4 - 13
Source/cmGeneratorExpression.cxx

@@ -72,19 +72,10 @@ const char *cmCompiledGeneratorExpression::Evaluate(
   cmGeneratorExpressionDAGChecker *dagChecker,
   std::string const& language) const
 {
-  cmGeneratorExpressionContext context;
-  context.Makefile = mf;
-  context.Config = config;
-  context.Quiet = quiet;
-  context.HadError = false;
-  context.HadContextSensitiveCondition = false;
-  context.HadHeadSensitiveCondition = false;
-  context.SourceSensitiveTargets.clear();
-  context.HeadTarget = headTarget;
-  context.EvaluateForBuildsystem = this->EvaluateForBuildsystem;
-  context.CurrentTarget = currentTarget ? currentTarget : headTarget;
-  context.Backtrace = this->Backtrace;
-  context.Language = language;
+  cmGeneratorExpressionContext context(mf, config, quiet, headTarget,
+                                  currentTarget ? currentTarget : headTarget,
+                                  this->EvaluateForBuildsystem,
+                                  this->Backtrace, language);
 
   return this->EvaluateWithContext(context, dagChecker);
 }

+ 18 - 2
Source/cmGeneratorExpressionContext.cxx

@@ -12,7 +12,23 @@
 
 #include "cmGeneratorExpressionContext.h"
 
-cmGeneratorExpressionContext::cmGeneratorExpressionContext();
-  : Backtrace(NULL)
+cmGeneratorExpressionContext::cmGeneratorExpressionContext(
+      cmMakefile* mf, std::string const& config,
+      bool quiet, cmTarget const* headTarget,
+      cmTarget const* currentTarget,
+      bool evaluateForBuildsystem,
+      cmListFileBacktrace const& backtrace,
+      std::string const& language)
+  : Backtrace(backtrace),
+    Makefile(mf),
+    Config(config),
+    Language(language),
+    HeadTarget(headTarget),
+    CurrentTarget(currentTarget),
+    Quiet(quiet),
+    HadError(false),
+    HadContextSensitiveCondition(false),
+    HadHeadSensitiveCondition(false),
+    EvaluateForBuildsystem(evaluateForBuildsystem)
 {
 }

+ 7 - 1
Source/cmGeneratorExpressionContext.h

@@ -23,7 +23,13 @@ class cmTarget;
 //----------------------------------------------------------------------------
 struct cmGeneratorExpressionContext
 {
-  cmGeneratorExpressionContext();
+  cmGeneratorExpressionContext(cmMakefile* mf, std::string const& config,
+                               bool quiet, cmTarget const* headTarget,
+                               cmTarget const* currentTarget,
+                               bool evaluateForBuildsystem,
+                               cmListFileBacktrace const& backtrace,
+                               std::string const& language);
+
 
   cmListFileBacktrace Backtrace;
   std::set<cmTarget*> DependTargets;