Update feature paths on assignment to QMAKE_PLATFORM

Instead of after parsing the makespecs, were we assumed QMAKE_PLATFORM
had been set by the makespec and did an explicit update.

Allows loading platform specific features from within a makespec after
updating QMAKE_PLATFORM.

Change-Id: I0eb3b7fb88ce48b00a384850c5d87223c06234d7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
This commit is contained in:
Tor Arne Vestbø 2013-02-15 12:24:22 +01:00 committed by The Qt Project
parent a1000de2b4
commit 4dd29248cd
2 changed files with 4 additions and 1 deletions

View File

@ -126,6 +126,7 @@ void QMakeEvaluator::initStatics()
statics.strforever = QLatin1String("forever"); statics.strforever = QLatin1String("forever");
statics.strhost_build = QLatin1String("host_build"); statics.strhost_build = QLatin1String("host_build");
statics.strTEMPLATE = ProKey("TEMPLATE"); statics.strTEMPLATE = ProKey("TEMPLATE");
statics.strQMAKE_PLATFORM = ProKey("QMAKE_PLATFORM");
#ifdef PROEVALUATOR_FULL #ifdef PROEVALUATOR_FULL
statics.strREQUIRES = ProKey("REQUIRES"); statics.strREQUIRES = ProKey("REQUIRES");
#endif #endif
@ -924,6 +925,8 @@ void QMakeEvaluator::visitProVariable(
if (varName == statics.strTEMPLATE) if (varName == statics.strTEMPLATE)
setTemplate(); setTemplate();
else if (varName == statics.strQMAKE_PLATFORM)
updateFeaturePaths();
#ifdef PROEVALUATOR_FULL #ifdef PROEVALUATOR_FULL
else if (varName == statics.strREQUIRES) else if (varName == statics.strREQUIRES)
checkRequirements(values(varName)); checkRequirements(values(varName));
@ -1217,7 +1220,6 @@ bool QMakeEvaluator::loadSpec()
} }
if (!loadSpecInternal()) if (!loadSpecInternal())
return false; return false;
updateFeaturePaths(); // The spec extends the feature search path, so rebuild the cache.
if (!m_conffile.isEmpty() if (!m_conffile.isEmpty()
&& evaluateFile(m_conffile, QMakeHandler::EvalConfigFile, LoadProOnly) != ReturnTrue) { && evaluateFile(m_conffile, QMakeHandler::EvalConfigFile, LoadProOnly) != ReturnTrue) {
return false; return false;

View File

@ -89,6 +89,7 @@ struct QMakeStatics {
QString strforever; QString strforever;
QString strhost_build; QString strhost_build;
ProKey strTEMPLATE; ProKey strTEMPLATE;
ProKey strQMAKE_PLATFORM;
#ifdef PROEVALUATOR_FULL #ifdef PROEVALUATOR_FULL
ProKey strREQUIRES; ProKey strREQUIRES;
#endif #endif