diff options
author | Daniel Teske <daniel.teske@digia.com> | 2012-10-23 17:40:10 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-05-28 12:50:39 +0200 |
commit | b8cd09210681be4cec6b2896cfa7f26b917f0ed0 (patch) | |
tree | d662e3fa6abbb34cc9b1b9774b8dbfb4bc2eafd4 | |
parent | f8cd4b981041c1cb68355b4ce7f38a4397dc208e (diff) | |
download | qttools-b8cd09210681be4cec6b2896cfa7f26b917f0ed0.tar.gz |
excerpt from "Qt4Project: Do a build_pass evaluation"
sync up the implementation with qtcreator
Change-Id: I3673dd93b37b10102a0c1f1ce053e1aef8aaf53f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
(cherry picked from qtcreator/95169eb8e39c6f43b7e74fbb18d4db19a38b0124)
Reviewed-by: hjk <hjk121@nokiamail.com>
-rw-r--r-- | src/linguist/shared/profileevaluator.cpp | 15 | ||||
-rw-r--r-- | src/linguist/shared/profileevaluator.h | 2 | ||||
-rw-r--r-- | src/linguist/shared/qmakeevaluator.cpp | 10 | ||||
-rw-r--r-- | src/linguist/shared/qmakeevaluator.h | 4 |
4 files changed, 19 insertions, 12 deletions
diff --git a/src/linguist/shared/profileevaluator.cpp b/src/linguist/shared/profileevaluator.cpp index b391200bd..3d135cde8 100644 --- a/src/linguist/shared/profileevaluator.cpp +++ b/src/linguist/shared/profileevaluator.cpp @@ -222,6 +222,21 @@ void ProFileEvaluator::setCumulative(bool on) } #endif +void ProFileEvaluator::setExtraVars(const QHash<QString, QStringList> &extraVars) +{ + ProValueMap map; + QHash<QString, QStringList>::const_iterator it = extraVars.constBegin(); + QHash<QString, QStringList>::const_iterator end = extraVars.constEnd(); + for ( ; it != end; ++it) + map.insert(ProKey(it.key()), ProStringList(it.value())); + d->setExtraVars(map); +} + +void ProFileEvaluator::setExtraConfigs(const QStringList &extraConfigs) +{ + d->setExtraConfigs(ProStringList(extraConfigs)); +} + void ProFileEvaluator::setOutputDir(const QString &dir) { d->m_outputDir = dir; diff --git a/src/linguist/shared/profileevaluator.h b/src/linguist/shared/profileevaluator.h index 854b42d10..50ec282d4 100644 --- a/src/linguist/shared/profileevaluator.h +++ b/src/linguist/shared/profileevaluator.h @@ -84,6 +84,8 @@ public: #ifdef PROEVALUATOR_CUMULATIVE void setCumulative(bool on); // Default is false #endif + void setExtraVars(const QHash<QString, QStringList> &extraVars); + void setExtraConfigs(const QStringList &extraConfigs); void setOutputDir(const QString &dir); // Default is empty bool loadNamedSpec(const QString &specDir, bool hostSpec); diff --git a/src/linguist/shared/qmakeevaluator.cpp b/src/linguist/shared/qmakeevaluator.cpp index 98f3018a3..51d42e415 100644 --- a/src/linguist/shared/qmakeevaluator.cpp +++ b/src/linguist/shared/qmakeevaluator.cpp @@ -1350,11 +1350,9 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::visitProFile( loadDefaults(); } -#ifdef QT_BUILD_QMAKE for (ProValueMap::ConstIterator it = m_extraVars.constBegin(); it != m_extraVars.constEnd(); ++it) m_valuemapStack.first().insert(it.key(), it.value()); -#endif m_handler->aboutToEval(currentProFile(), pro, type); m_profileStack.push(pro); @@ -1366,11 +1364,9 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::visitProFile( evaluateCommand(m_option->precmds, fL1S("(command line)")); -#ifdef QT_BUILD_QMAKE // After user configs, to override them if (!m_extraConfigs.isEmpty()) - evaluateCommand("CONFIG += " + m_extraConfigs.join(' '), fL1S("(extra configs)")); -#endif + evaluateCommand(fL1S("CONFIG += ") + m_extraConfigs.join(QLatin1Char(' ')), fL1S("(extra configs)")); } debugMsg(1, "visiting file %s", qPrintable(pro->fileName())); @@ -1380,13 +1376,11 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::visitProFile( if (flags & LoadPostFiles) { evaluateCommand(m_option->postcmds, fL1S("(command line -after)")); -#ifdef QT_BUILD_QMAKE // Again, to ensure the project does not mess with us. // Specifically, do not allow a project to override debug/release within a // debug_and_release build pass - it's too late for that at this point anyway. if (!m_extraConfigs.isEmpty()) - evaluateCommand("CONFIG += " + m_extraConfigs.join(' '), fL1S("(extra configs)")); -#endif + evaluateCommand(fL1S("CONFIG += ") + m_extraConfigs.join(QLatin1Char(' ')), fL1S("(extra configs)")); evaluateFeatureFile(QLatin1String("default_post.prf")); diff --git a/src/linguist/shared/qmakeevaluator.h b/src/linguist/shared/qmakeevaluator.h index 2eb762331..dee73d104 100644 --- a/src/linguist/shared/qmakeevaluator.h +++ b/src/linguist/shared/qmakeevaluator.h @@ -112,10 +112,8 @@ public: QMakeHandler *handler); ~QMakeEvaluator(); -#ifdef QT_BUILD_QMAKE void setExtraVars(const ProValueMap &extraVars) { m_extraVars = extraVars; } void setExtraConfigs(const ProStringList &extraConfigs) { m_extraConfigs = extraConfigs; } -#endif void setOutputDir(const QString &outputDir) { m_outputDir = outputDir; } ProStringList values(const ProKey &variableName) const; @@ -268,10 +266,8 @@ public: QStack<Location> m_locationStack; // All execution location changes QStack<ProFile *> m_profileStack; // Includes only -#ifdef QT_BUILD_QMAKE ProValueMap m_extraVars; ProStringList m_extraConfigs; -#endif QString m_outputDir; int m_listCount; |