From 8be83a173acf1ca0fe7fbb808b5dea5a649a45b7 Mon Sep 17 00:00:00 2001 From: Daniel Teske <daniel.teske@nokia.com> Date: Thu, 20 Oct 2011 18:37:35 +0000 Subject: [PATCH] Make sure we pass -after arguments after user arguments Otherwise the user can't pass on normal arguments Task-number: QTCREATORBUG-6346 Change-Id: I986563a75113a6d5acf601b5ccb63d6a35570bad Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com> --- src/plugins/qt4projectmanager/qmakestep.cpp | 23 ++++++++++++++----- src/plugins/qt4projectmanager/qmakestep.h | 1 + .../qt4buildconfiguration.cpp | 2 +- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp index 0c36f58bd17..99187607f9d 100644 --- a/src/plugins/qt4projectmanager/qmakestep.cpp +++ b/src/plugins/qt4projectmanager/qmakestep.cpp @@ -157,7 +157,11 @@ QString QMakeStep::allArguments(bool shorted) arguments << moreArguments(); QString args = Utils::QtcProcess::joinArgs(arguments); + // User arguments Utils::QtcProcess::addArgs(&args, m_userArgs); + // moreArgumentsAfter + foreach (const QString &arg, moreArgumentsAfter()) + Utils::QtcProcess::addArg(&args, arg); return args; } @@ -195,19 +199,26 @@ QStringList QMakeStep::moreArguments() } } + + return arguments; +} + +QStringList QMakeStep::moreArgumentsAfter() +{ + Qt4BuildConfiguration *bc = qt4BuildConfiguration(); if (bc->qtVersion() && !bc->qtVersion()->supportsShadowBuilds()) { // We have a target which does not allow shadow building. // But we really don't want to have the build artefacts in the source dir // so we try to hack around it, to make the common cases work. // This is a HACK, remove once the symbian make generator supports // shadow building - arguments << QLatin1String("-after") - << QLatin1String("OBJECTS_DIR=obj") - << QLatin1String("MOC_DIR=moc") - << QLatin1String("UI_DIR=ui") - << QLatin1String("RCC_DIR=rcc"); + return QStringList() << QLatin1String("-after") + << QLatin1String("OBJECTS_DIR=obj") + << QLatin1String("MOC_DIR=moc") + << QLatin1String("UI_DIR=ui") + << QLatin1String("RCC_DIR=rcc"); } - return arguments; + return QStringList(); } bool QMakeStep::init() diff --git a/src/plugins/qt4projectmanager/qmakestep.h b/src/plugins/qt4projectmanager/qmakestep.h index 03d8151dc66..fce164d68bd 100644 --- a/src/plugins/qt4projectmanager/qmakestep.h +++ b/src/plugins/qt4projectmanager/qmakestep.h @@ -100,6 +100,7 @@ public: // TODO clean up those functions QString allArguments(bool shorted = false); QStringList moreArguments(); + QStringList moreArgumentsAfter(); QStringList parserArguments(); QString userArguments(); QString mkspec(); diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp index 9d172accd9a..a92f19e7265 100644 --- a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp @@ -494,7 +494,7 @@ bool Qt4BuildConfiguration::compareToImportFrom(const QString &makefile) // This copies the settings from userArgs to actualArgs (minus some we // are not interested in), splitting them up into individual strings: extractSpecFromArguments(&userArgs, workingDirectory, version, &actualArgs), - actualArgs += qs->moreArguments(); + actualArgs = qs->moreArguments() + actualArgs + qs->moreArgumentsAfter(); QString actualSpec = qs->mkspec(); QString qmakeArgs = result.second; -- GitLab