diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp index 0c36f58bd17f913c5fd7cd2f6c40c9bea6f7e1db..99187607f9dbdad8b25b407fbaaa971e9d83c53a 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 03d8151dc66db97131232082ea90bb524feba5cd..fce164d68bd268b42ea16c11eb98dd76aa301e11 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 9d172accd9a8e0c31cc463234e899eed9f589fc9..a92f19e72657a73a632f952d2413a843492f53fa 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;