|
@@ -72,18 +72,6 @@ const char *cmCompiledGeneratorExpression::Evaluate(
|
|
|
cmGeneratorExpressionDAGChecker *dagChecker,
|
|
cmGeneratorExpressionDAGChecker *dagChecker,
|
|
|
std::string const& language) const
|
|
std::string const& language) const
|
|
|
{
|
|
{
|
|
|
- if (!this->NeedsEvaluation)
|
|
|
|
|
- {
|
|
|
|
|
- return this->Input.c_str();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- this->Output = "";
|
|
|
|
|
-
|
|
|
|
|
- std::vector<cmGeneratorExpressionEvaluator*>::const_iterator it
|
|
|
|
|
- = this->Evaluators.begin();
|
|
|
|
|
- const std::vector<cmGeneratorExpressionEvaluator*>::const_iterator end
|
|
|
|
|
- = this->Evaluators.end();
|
|
|
|
|
-
|
|
|
|
|
cmGeneratorExpressionContext context;
|
|
cmGeneratorExpressionContext context;
|
|
|
context.Makefile = mf;
|
|
context.Makefile = mf;
|
|
|
context.Config = config;
|
|
context.Config = config;
|
|
@@ -98,6 +86,26 @@ const char *cmCompiledGeneratorExpression::Evaluate(
|
|
|
context.Backtrace = this->Backtrace;
|
|
context.Backtrace = this->Backtrace;
|
|
|
context.Language = language;
|
|
context.Language = language;
|
|
|
|
|
|
|
|
|
|
+ return this->EvaluateWithContext(context, dagChecker);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+//----------------------------------------------------------------------------
|
|
|
|
|
+const char* cmCompiledGeneratorExpression::EvaluateWithContext(
|
|
|
|
|
+ cmGeneratorExpressionContext& context,
|
|
|
|
|
+ cmGeneratorExpressionDAGChecker *dagChecker) const
|
|
|
|
|
+{
|
|
|
|
|
+ if (!this->NeedsEvaluation)
|
|
|
|
|
+ {
|
|
|
|
|
+ return this->Input.c_str();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ this->Output = "";
|
|
|
|
|
+
|
|
|
|
|
+ std::vector<cmGeneratorExpressionEvaluator*>::const_iterator it
|
|
|
|
|
+ = this->Evaluators.begin();
|
|
|
|
|
+ const std::vector<cmGeneratorExpressionEvaluator*>::const_iterator end
|
|
|
|
|
+ = this->Evaluators.end();
|
|
|
|
|
+
|
|
|
for ( ; it != end; ++it)
|
|
for ( ; it != end; ++it)
|
|
|
{
|
|
{
|
|
|
this->Output += (*it)->Evaluate(&context, dagChecker);
|
|
this->Output += (*it)->Evaluate(&context, dagChecker);
|