Commit 4d75cb93 authored by Tor Arne Vestbø's avatar Tor Arne Vestbø Committed by Oswald Buddenhagen
Browse files

qmake: Expose ARGC to qmake functions to be able to check argument count



ARGS already exists, but is a flattened list of the arguments, so both
foo(bar, baz) and foo(bar baz) will give count(ARGS, 2), making it
unreliable for validating arguments to qmake functions.

Change-Id: I0bcc16614c64000169431327da48fd1a26708e67
Reviewed-by: default avatarJoerg Bornemann <joerg.bornemann@digia.com>
(cherry picked from qtbase/09205d573413da8a2ac3826198fe36bb2dc4349f)
Reviewed-by: default avatarDaniel Teske <daniel.teske@digia.com>
parent e7778e67
......@@ -109,6 +109,7 @@ void QMakeEvaluator::initStatics()
statics.strfalse = QLatin1String("false");
statics.strCONFIG = ProKey("CONFIG");
statics.strARGS = ProKey("ARGS");
statics.strARGC = ProKey("ARGC");
statics.strDot = QLatin1String(".");
statics.strDotDot = QLatin1String("..");
statics.strever = QLatin1String("ever");
......@@ -1635,6 +1636,7 @@ ProStringList QMakeEvaluator::evaluateFunction(
m_valuemapStack.top()[ProKey(QString::number(i+1))] = argumentsList[i];
}
m_valuemapStack.top()[statics.strARGS] = args;
m_valuemapStack.top()[statics.strARGC] = ProStringList(ProString(QString::number(argumentsList.count())));
vr = visitProBlock(func.pro(), func.tokPtr());
if (vr == ReturnReturn)
vr = ReturnTrue;
......
......@@ -71,6 +71,7 @@ struct QMakeStatics {
QString strfalse;
ProKey strCONFIG;
ProKey strARGS;
ProKey strARGC;
QString strDot;
QString strDotDot;
QString strever;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment