From bc28670a17bfcdd8fd64cb6d6de83160a3c6e3d6 Mon Sep 17 00:00:00 2001
From: dt <qtc-committer@nokia.com>
Date: Wed, 11 Aug 2010 15:32:14 +0200
Subject: [PATCH] Fix always running of qmake

---
 src/plugins/qt4projectmanager/qmakestep.cpp   | 41 +++++++++++--------
 src/plugins/qt4projectmanager/qmakestep.h     |  1 +
 .../qt4buildconfiguration.cpp                 |  4 +-
 3 files changed, 29 insertions(+), 17 deletions(-)

diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp
index 37e061496f1..9f06947fe95 100644
--- a/src/plugins/qt4projectmanager/qmakestep.cpp
+++ b/src/plugins/qt4projectmanager/qmakestep.cpp
@@ -106,6 +106,31 @@ QStringList QMakeStep::allArguments()
     if (!additonalArguments.contains("-spec"))
         arguments << "-spec" << bc->qtVersion()->mkspec();
 
+    // Find out what flags we pass on to qmake
+    QStringList addedUserConfigArguments;
+    QStringList removedUserConfigArguments;
+    bc->getConfigCommandLineArguments(&addedUserConfigArguments, &removedUserConfigArguments);
+    if (!removedUserConfigArguments.isEmpty()) {
+        foreach (const QString &removedConfig, removedUserConfigArguments)
+            arguments.append("CONFIG-=" + removedConfig);
+    }
+    if (!addedUserConfigArguments.isEmpty()) {
+        foreach (const QString &addedConfig, addedUserConfigArguments)
+            arguments.append("CONFIG+=" + addedConfig);
+    }
+
+    arguments << moreArguments();
+
+    if (!additonalArguments.isEmpty())
+        arguments << additonalArguments;
+
+    return arguments;
+}
+
+QStringList QMakeStep::moreArguments()
+{
+    Qt4BuildConfiguration *bc = qt4BuildConfiguration();
+    QStringList arguments;
 #if defined(Q_OS_WIN) || defined(Q_OS_MAC)
     ToolChain::ToolChainType type = bc->toolChainType();
     if (type == ToolChain::GCC_MAEMO)
@@ -125,24 +150,8 @@ QStringList QMakeStep::allArguments()
                   << QLatin1String("RCC_DIR=rcc");
     }
 
-    // Find out what flags we pass on to qmake
-    QStringList addedUserConfigArguments;
-    QStringList removedUserConfigArguments;
-    bc->getConfigCommandLineArguments(&addedUserConfigArguments, &removedUserConfigArguments);
-    if (!removedUserConfigArguments.isEmpty()) {
-        foreach (const QString &removedConfig, removedUserConfigArguments)
-            arguments.append("CONFIG-=" + removedConfig);
-    }
-    if (!addedUserConfigArguments.isEmpty()) {
-        foreach (const QString &addedConfig, addedUserConfigArguments)
-            arguments.append("CONFIG+=" + addedConfig);
-    }
-    if (!additonalArguments.isEmpty())
-        arguments << additonalArguments;
-
     arguments << QLatin1String(Constants::QMAKEVAR_QMLINSPECTOR_PATH) + QLatin1Char('=') +
             Core::ICore::instance()->resourcePath() + QLatin1String("/qmljsdebugger");
-
     return arguments;
 }
 
diff --git a/src/plugins/qt4projectmanager/qmakestep.h b/src/plugins/qt4projectmanager/qmakestep.h
index 5c34e5da618..659af4e4f08 100644
--- a/src/plugins/qt4projectmanager/qmakestep.h
+++ b/src/plugins/qt4projectmanager/qmakestep.h
@@ -86,6 +86,7 @@ public:
     bool forced();
 
     QStringList allArguments();
+    QStringList moreArguments();
     QStringList userArguments();
     void setUserArguments(const QStringList &arguments);
 
diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
index bb5c5d0c4f3..1e70599ebe0 100644
--- a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
@@ -452,7 +452,9 @@ bool Qt4BuildConfiguration::compareToImportFrom(const QString &workingDirectory)
 
 
                 QString parsedSpec = extractSpecFromArgumentList(result.second, workingDirectory, version);
-                QStringList actualArgs = removeSpecFromArgumentList(qs->userArguments());
+                QStringList actualArgs = qs->moreArguments();
+                actualArgs << qs->userArguments();
+                actualArgs = removeSpecFromArgumentList(actualArgs);
                 QStringList parsedArgs = removeSpecFromArgumentList(result.second);
 
                 if (debug) {
-- 
GitLab