summaryrefslogtreecommitdiffstats
path: root/qmake/project.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qmake/project.cpp')
-rw-r--r--qmake/project.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/qmake/project.cpp b/qmake/project.cpp
index e369ce1b42..478693f78b 100644
--- a/qmake/project.cpp
+++ b/qmake/project.cpp
@@ -42,11 +42,14 @@
#include "project.h"
#include "option.h"
+#include <qmakeevaluator_p.h>
#include <qdir.h>
#include <stdio.h>
+using namespace QMakeInternal;
+
QT_BEGIN_NAMESPACE
QMakeProject::QMakeProject()
@@ -83,24 +86,34 @@ bool QMakeProject::test(const ProKey &func, const QList<ProStringList> &args)
{
m_current.clear();
+ if (int func_t = statics.functions.value(func))
+ return evaluateBuiltinConditional(func_t, func, prepareBuiltinArgs(args)) == ReturnTrue;
+
QHash<ProKey, ProFunctionDef>::ConstIterator it =
m_functionDefs.testFunctions.constFind(func);
if (it != m_functionDefs.testFunctions.constEnd())
return evaluateBoolFunction(*it, args, func) == ReturnTrue;
- return evaluateBuiltinConditional(func, prepareBuiltinArgs(args)) == ReturnTrue;
+ evalError(QStringLiteral("'%1' is not a recognized test function.")
+ .arg(func.toQString(m_tmp1)));
+ return false;
}
QStringList QMakeProject::expand(const ProKey &func, const QList<ProStringList> &args)
{
m_current.clear();
+ if (int func_t = statics.expands.value(func))
+ return evaluateBuiltinExpand(func_t, func, prepareBuiltinArgs(args)).toQStringList();
+
QHash<ProKey, ProFunctionDef>::ConstIterator it =
m_functionDefs.replaceFunctions.constFind(func);
if (it != m_functionDefs.replaceFunctions.constEnd())
return evaluateFunction(*it, args, 0).toQStringList();
- return evaluateBuiltinExpand(func, prepareBuiltinArgs(args)).toQStringList();
+ evalError(QStringLiteral("'%1' is not a recognized replace function.")
+ .arg(func.toQString(m_tmp1)));
+ return QStringList();
}
ProString QMakeProject::expand(const QString &expr, const QString &where, int line)