diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp b/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp index 298d17e161e21d20de7f9e4856ef6dba89f46a00..aedab9d6458b9e37eb349eb4a2697d3c88fe15b1 100644 --- a/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp +++ b/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp @@ -180,7 +180,7 @@ ProjectExplorer::Target *Qt4DesktopTargetFactory::create(ProjectExplorer::Projec foreach (const BuildConfigurationInfo &info, infos) t->addQt4BuildConfiguration(msgBuildConfigurationName(info), QString(), info.version, info.buildConfig, - info.additionalArguments, info.directory); + info.additionalArguments, info.directory, info.importing); t->addDeployConfiguration(t->createDeployConfiguration(ProjectExplorer::Constants::DEFAULT_DEPLOYCONFIGURATION_ID)); diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp b/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp index 28d190d5b7abb7868339dff11d4a8f6fa09dd71f..38ffb8afe73d7fc174510407de90f7ba328f87f6 100644 --- a/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp +++ b/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp @@ -164,7 +164,7 @@ ProjectExplorer::Target *Qt4SimulatorTargetFactory::create(ProjectExplorer::Proj foreach (const BuildConfigurationInfo &info, infos) t->addQt4BuildConfiguration(msgBuildConfigurationName(info), QString(), info.version, info.buildConfig, - info.additionalArguments, info.directory); + info.additionalArguments, info.directory, info.importing); t->addDeployConfiguration(t->createDeployConfiguration(ProjectExplorer::Constants::DEFAULT_DEPLOYCONFIGURATION_ID)); diff --git a/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp b/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp index 96719279397da6ca1c4e8f01a5a59a3501efc6f9..262adefa8ddc4dbe896a144143893a21e44e4f8d 100644 --- a/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp @@ -225,7 +225,7 @@ ProjectExplorer::Target *Qt4SymbianTargetFactory::create(ProjectExplorer::Projec foreach (const BuildConfigurationInfo &info, infos) t->addQt4BuildConfiguration(msgBuildConfigurationName(info), QString(), info.version, info.buildConfig, - info.additionalArguments, info.directory); + info.additionalArguments, info.directory, info.importing); t->addDeployConfiguration(t->createDeployConfiguration(QLatin1String(Qt4ProjectManager::Constants::S60_DEVICE_TARGET_ID))); diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp index 2ffd47c1935f42b8f11d47c0a1de83c0916575d5..39833e6ee4dff3d682c58e194f5298dd85fcdc93 100644 --- a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp @@ -531,11 +531,16 @@ bool Qt4BuildConfiguration::compareToImportFrom(const QString &makefile) return false; } -void Qt4BuildConfiguration::removeQMLInspectorFromArguments(QString *args) +bool Qt4BuildConfiguration::removeQMLInspectorFromArguments(QString *args) { - for (Utils::QtcProcess::ArgIterator ait(args); ait.next(); ) - if (ait.value().contains(QLatin1String(Constants::QMAKEVAR_QMLJSDEBUGGER_PATH))) + bool removedArgument = false; + for (Utils::QtcProcess::ArgIterator ait(args); ait.next(); ) { + if (ait.value().contains(QLatin1String(Constants::QMAKEVAR_QMLJSDEBUGGER_PATH))) { ait.deleteArg(); + removedArgument = true; + } + } + return removedArgument; } QString Qt4BuildConfiguration::extractSpecFromArguments(QString *args, @@ -745,7 +750,7 @@ BuildConfiguration *Qt4BuildConfigurationFactory::create(ProjectExplorer::Target BuildConfiguration *bc = qt4Target->addQt4BuildConfiguration(defaultDebugName, customDebugName, version, (version->defaultBuildConfig() | QtSupport::BaseQtVersion::DebugBuild), - QString(), QString()); + QString(), QString(), false); if (qt4Target->id() != Constants::S60_EMULATOR_TARGET_ID) { //: Release build configuration. We recommend not translating it. @@ -757,7 +762,7 @@ BuildConfiguration *Qt4BuildConfigurationFactory::create(ProjectExplorer::Target bc = qt4Target->addQt4BuildConfiguration(defaultReleaseName, customReleaseName, version, (version->defaultBuildConfig() & ~QtSupport::BaseQtVersion::DebugBuild), - QString(), QString()); + QString(), QString(), false); } return bc; } @@ -832,13 +837,15 @@ void Qt4BuildConfiguration::importFromBuildDirectory() QString additionalArguments = result.second; QString parsedSpec = Qt4BuildConfiguration::extractSpecFromArguments(&additionalArguments, directory, version); - Qt4BuildConfiguration::removeQMLInspectorFromArguments(&additionalArguments); + const bool enableQmlDebugger = + Qt4BuildConfiguration::removeQMLInspectorFromArguments(&additionalArguments); // So we got all the information now apply it... setQtVersion(version); QMakeStep *qs = qmakeStep(); qs->setUserArguments(additionalArguments); + qs->setLinkQmlDebuggingLibrary(enableQmlDebugger); if (!parsedSpec.isEmpty() && parsedSpec != QLatin1String("default") && qs->mkspec() != parsedSpec) { Utils::QtcProcess::addArgs(&additionalArguments, (QStringList() << "-spec" << parsedSpec)); qs->setUserArguments(additionalArguments); diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.h b/src/plugins/qt4projectmanager/qt4buildconfiguration.h index a46912b83e54258a5d71c96dea830499c4f84a2e..a397831dcd05ad997c195198a7b89782a5d6883c 100644 --- a/src/plugins/qt4projectmanager/qt4buildconfiguration.h +++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.h @@ -107,7 +107,7 @@ public: QString makefile() const; bool compareToImportFrom(const QString &makefile); - static void removeQMLInspectorFromArguments(QString *args); + static bool removeQMLInspectorFromArguments(QString *args); static QString extractSpecFromArguments(QString *arguments, const QString &directory, const QtSupport::BaseQtVersion *version, QStringList *outArgs = 0); diff --git a/src/plugins/qt4projectmanager/qt4target.cpp b/src/plugins/qt4projectmanager/qt4target.cpp index 4c4283210d7a9c6d798c96a9370c4e43ce30d7d4..bbeadfa9be8f742eca8c5ba9ee173239709228c7 100644 --- a/src/plugins/qt4projectmanager/qt4target.cpp +++ b/src/plugins/qt4projectmanager/qt4target.cpp @@ -126,7 +126,7 @@ QList<BuildConfigurationInfo> Qt4BaseTargetFactory::availableBuildConfigurations if (!version->isValid() || !version->toolChainAvailable(id)) continue; QtSupport::BaseQtVersion::QmakeBuildConfigs config = version->defaultBuildConfig(); - BuildConfigurationInfo info = BuildConfigurationInfo(version, config, QString(), QString()); + BuildConfigurationInfo info = BuildConfigurationInfo(version, config, QString(), QString(), false, false); info.directory = shadowBuildDirectory(proFilePath, id, msgBuildConfigurationName(info)); infoList.append(info); @@ -299,7 +299,8 @@ Qt4BuildConfiguration *Qt4BaseTarget::addQt4BuildConfiguration(QString defaultDi QString displayName, QtSupport::BaseQtVersion *qtversion, QtSupport::BaseQtVersion::QmakeBuildConfigs qmakeBuildConfiguration, QString additionalArguments, - QString directory) + QString directory, + bool importing) { Q_ASSERT(qtversion); bool debug = qmakeBuildConfiguration & QtSupport::BaseQtVersion::DebugBuild; @@ -324,8 +325,13 @@ Qt4BuildConfiguration *Qt4BaseTarget::addQt4BuildConfiguration(QString defaultDi cleanStep->setClean(true); cleanStep->setUserArguments("clean"); cleanSteps->insertStep(0, cleanStep); + + bool enableQmlDebugger + = Qt4BuildConfiguration::removeQMLInspectorFromArguments(&additionalArguments); if (!additionalArguments.isEmpty()) qmakeStep->setUserArguments(additionalArguments); + if (importing) + qmakeStep->setLinkQmlDebuggingLibrary(enableQmlDebugger); // set some options for qmake and make if (qmakeBuildConfiguration & QtSupport::BaseQtVersion::BuildAll) // debug_and_release => explicit targets @@ -1144,7 +1150,6 @@ BuildConfigurationInfo BuildConfigurationInfo::checkForBuild(const QString &dire specArgument = "-spec " + Utils::QtcProcess::quoteArg(parsedSpec); } Utils::QtcProcess::addArgs(&specArgument, additionalArguments); - Qt4BuildConfiguration::removeQMLInspectorFromArguments(&specArgument); BuildConfigurationInfo info = BuildConfigurationInfo(version, makefileBuildConfig.first, diff --git a/src/plugins/qt4projectmanager/qt4target.h b/src/plugins/qt4projectmanager/qt4target.h index 9c06972cefc388cea619c50b59b68739497ebc76..f9325e2230afe8454a6f74b36200037aa53bd64a 100644 --- a/src/plugins/qt4projectmanager/qt4target.h +++ b/src/plugins/qt4projectmanager/qt4target.h @@ -82,7 +82,8 @@ public: QtSupport::BaseQtVersion *qtversion, QtSupport::BaseQtVersion::QmakeBuildConfigs qmakeBuildConfiguration, QString additionalArguments, - QString directory); + QString directory, + bool importing); virtual void createApplicationProFiles() = 0; diff --git a/src/plugins/remotelinux/qt4maemotargetfactory.cpp b/src/plugins/remotelinux/qt4maemotargetfactory.cpp index b02ec1892fb00eba868d2d5745b96387a785460b..afacc185cf49bdd991de3a932152f56bf7f1a23a 100644 --- a/src/plugins/remotelinux/qt4maemotargetfactory.cpp +++ b/src/plugins/remotelinux/qt4maemotargetfactory.cpp @@ -214,7 +214,7 @@ ProjectExplorer::Target *Qt4MaemoTargetFactory::create(ProjectExplorer::Project foreach (const BuildConfigurationInfo &info, infos) target->addQt4BuildConfiguration(msgBuildConfigurationName(info), QString(), info.version, info.buildConfig, - info.additionalArguments, info.directory); + info.additionalArguments, info.directory, info.importing); foreach (const QString &deployConfigId, deployConfigIds) { target->addDeployConfiguration(target->createDeployConfiguration(deployConfigId));