From aca1c4bd5037cbaa4d598a82da911292c9625734 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 28 Jun 2012 17:54:27 +0200 Subject: [PATCH] introduce PROEVALUATOR_FULL #define if this is enabled, the evaluator implements all functionality necessary for qmake. without it, functionality which is unnecessary or outright dangerous in qt creator or lupdate context is omitted. Change-Id: I233cfa6daf2e4451f9f1d3d14711be2a7cfe4293 Reviewed-by: Daniel Teske --- src/shared/proparser/qmakebuiltins.cpp | 4 +++- tests/manual/proparser/testreader.pro | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/shared/proparser/qmakebuiltins.cpp b/src/shared/proparser/qmakebuiltins.cpp index 8cf510f79c2..a09f26c8009 100644 --- a/src/shared/proparser/qmakebuiltins.cpp +++ b/src/shared/proparser/qmakebuiltins.cpp @@ -1044,8 +1044,10 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateConditionalFunction( // ### Consider real termination in non-cumulative mode return returnBool(function != QLatin1String("error")); } -#if 0 // Way too dangerous to enable. +#ifdef PROEVALUATOR_FULL case T_SYSTEM: { + if (m_cumulative) // Anything else would be insanity + return ReturnFalse; if (args.count() != 1) { evalError(fL1S("system(exec) requires one argument.")); return ReturnFalse; diff --git a/tests/manual/proparser/testreader.pro b/tests/manual/proparser/testreader.pro index ced4ccc265d..6d58c9e257d 100644 --- a/tests/manual/proparser/testreader.pro +++ b/tests/manual/proparser/testreader.pro @@ -23,4 +23,4 @@ DEFINES += QMAKE_BUILTIN_PRFS DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII DEFINES += QT_USE_FAST_OPERATOR_PLUS QT_USE_FAST_CONCATENATION -DEFINES += PROEVALUATOR_CUMULATIVE PROEVALUATOR_INIT_PROPS +DEFINES += PROEVALUATOR_FULL PROEVALUATOR_CUMULATIVE PROEVALUATOR_INIT_PROPS