summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Teske <daniel.teske@digia.com>2012-10-23 17:40:10 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-05-28 12:50:39 +0200
commitb8cd09210681be4cec6b2896cfa7f26b917f0ed0 (patch)
treed662e3fa6abbb34cc9b1b9774b8dbfb4bc2eafd4
parentf8cd4b981041c1cb68355b4ce7f38a4397dc208e (diff)
downloadqttools-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.cpp15
-rw-r--r--src/linguist/shared/profileevaluator.h2
-rw-r--r--src/linguist/shared/qmakeevaluator.cpp10
-rw-r--r--src/linguist/shared/qmakeevaluator.h4
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;