QMakeStep: Honor declarative_debug configuration for imported builds

Honor the qmake line that is imported: If it contains declarative_debug
or QMLJSDEBUGGER_PATH, also set the option in the qmake step, if not
not.

Change-Id: Ibc524ff8d39b66f76cc79807264db0dd3534e2d7
Reviewed-on: http://codereview.qt-project.org/4090
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
This commit is contained in:
Kai Koehne
2011-09-01 16:16:59 +02:00
parent 2d8acad3fc
commit a4a05aef2b
8 changed files with 28 additions and 15 deletions

View File

@@ -180,7 +180,7 @@ ProjectExplorer::Target *Qt4DesktopTargetFactory::create(ProjectExplorer::Projec
foreach (const BuildConfigurationInfo &info, infos) foreach (const BuildConfigurationInfo &info, infos)
t->addQt4BuildConfiguration(msgBuildConfigurationName(info), QString(), t->addQt4BuildConfiguration(msgBuildConfigurationName(info), QString(),
info.version, info.buildConfig, info.version, info.buildConfig,
info.additionalArguments, info.directory); info.additionalArguments, info.directory, info.importing);
t->addDeployConfiguration(t->createDeployConfiguration(ProjectExplorer::Constants::DEFAULT_DEPLOYCONFIGURATION_ID)); t->addDeployConfiguration(t->createDeployConfiguration(ProjectExplorer::Constants::DEFAULT_DEPLOYCONFIGURATION_ID));

View File

@@ -164,7 +164,7 @@ ProjectExplorer::Target *Qt4SimulatorTargetFactory::create(ProjectExplorer::Proj
foreach (const BuildConfigurationInfo &info, infos) foreach (const BuildConfigurationInfo &info, infos)
t->addQt4BuildConfiguration(msgBuildConfigurationName(info), QString(), info.version, info.buildConfig, 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)); t->addDeployConfiguration(t->createDeployConfiguration(ProjectExplorer::Constants::DEFAULT_DEPLOYCONFIGURATION_ID));

View File

@@ -225,7 +225,7 @@ ProjectExplorer::Target *Qt4SymbianTargetFactory::create(ProjectExplorer::Projec
foreach (const BuildConfigurationInfo &info, infos) foreach (const BuildConfigurationInfo &info, infos)
t->addQt4BuildConfiguration(msgBuildConfigurationName(info), QString(), t->addQt4BuildConfiguration(msgBuildConfigurationName(info), QString(),
info.version, info.buildConfig, 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))); t->addDeployConfiguration(t->createDeployConfiguration(QLatin1String(Qt4ProjectManager::Constants::S60_DEVICE_TARGET_ID)));

View File

@@ -531,11 +531,16 @@ bool Qt4BuildConfiguration::compareToImportFrom(const QString &makefile)
return false; return false;
} }
void Qt4BuildConfiguration::removeQMLInspectorFromArguments(QString *args) bool Qt4BuildConfiguration::removeQMLInspectorFromArguments(QString *args)
{ {
for (Utils::QtcProcess::ArgIterator ait(args); ait.next(); ) bool removedArgument = false;
if (ait.value().contains(QLatin1String(Constants::QMAKEVAR_QMLJSDEBUGGER_PATH))) for (Utils::QtcProcess::ArgIterator ait(args); ait.next(); ) {
if (ait.value().contains(QLatin1String(Constants::QMAKEVAR_QMLJSDEBUGGER_PATH))) {
ait.deleteArg(); ait.deleteArg();
removedArgument = true;
}
}
return removedArgument;
} }
QString Qt4BuildConfiguration::extractSpecFromArguments(QString *args, QString Qt4BuildConfiguration::extractSpecFromArguments(QString *args,
@@ -745,7 +750,7 @@ BuildConfiguration *Qt4BuildConfigurationFactory::create(ProjectExplorer::Target
BuildConfiguration *bc = qt4Target->addQt4BuildConfiguration(defaultDebugName, customDebugName, BuildConfiguration *bc = qt4Target->addQt4BuildConfiguration(defaultDebugName, customDebugName,
version, version,
(version->defaultBuildConfig() | QtSupport::BaseQtVersion::DebugBuild), (version->defaultBuildConfig() | QtSupport::BaseQtVersion::DebugBuild),
QString(), QString()); QString(), QString(), false);
if (qt4Target->id() != Constants::S60_EMULATOR_TARGET_ID) { if (qt4Target->id() != Constants::S60_EMULATOR_TARGET_ID) {
//: Release build configuration. We recommend not translating it. //: Release build configuration. We recommend not translating it.
@@ -757,7 +762,7 @@ BuildConfiguration *Qt4BuildConfigurationFactory::create(ProjectExplorer::Target
bc = qt4Target->addQt4BuildConfiguration(defaultReleaseName, customReleaseName, bc = qt4Target->addQt4BuildConfiguration(defaultReleaseName, customReleaseName,
version, version,
(version->defaultBuildConfig() & ~QtSupport::BaseQtVersion::DebugBuild), (version->defaultBuildConfig() & ~QtSupport::BaseQtVersion::DebugBuild),
QString(), QString()); QString(), QString(), false);
} }
return bc; return bc;
} }
@@ -832,13 +837,15 @@ void Qt4BuildConfiguration::importFromBuildDirectory()
QString additionalArguments = result.second; QString additionalArguments = result.second;
QString parsedSpec = Qt4BuildConfiguration::extractSpecFromArguments(&additionalArguments, directory, version); 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... // So we got all the information now apply it...
setQtVersion(version); setQtVersion(version);
QMakeStep *qs = qmakeStep(); QMakeStep *qs = qmakeStep();
qs->setUserArguments(additionalArguments); qs->setUserArguments(additionalArguments);
qs->setLinkQmlDebuggingLibrary(enableQmlDebugger);
if (!parsedSpec.isEmpty() && parsedSpec != QLatin1String("default") && qs->mkspec() != parsedSpec) { if (!parsedSpec.isEmpty() && parsedSpec != QLatin1String("default") && qs->mkspec() != parsedSpec) {
Utils::QtcProcess::addArgs(&additionalArguments, (QStringList() << "-spec" << parsedSpec)); Utils::QtcProcess::addArgs(&additionalArguments, (QStringList() << "-spec" << parsedSpec));
qs->setUserArguments(additionalArguments); qs->setUserArguments(additionalArguments);

View File

@@ -107,7 +107,7 @@ public:
QString makefile() const; QString makefile() const;
bool compareToImportFrom(const QString &makefile); bool compareToImportFrom(const QString &makefile);
static void removeQMLInspectorFromArguments(QString *args); static bool removeQMLInspectorFromArguments(QString *args);
static QString extractSpecFromArguments(QString *arguments, static QString extractSpecFromArguments(QString *arguments,
const QString &directory, const QtSupport::BaseQtVersion *version, const QString &directory, const QtSupport::BaseQtVersion *version,
QStringList *outArgs = 0); QStringList *outArgs = 0);

View File

@@ -126,7 +126,7 @@ QList<BuildConfigurationInfo> Qt4BaseTargetFactory::availableBuildConfigurations
if (!version->isValid() || !version->toolChainAvailable(id)) if (!version->isValid() || !version->toolChainAvailable(id))
continue; continue;
QtSupport::BaseQtVersion::QmakeBuildConfigs config = version->defaultBuildConfig(); 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)); info.directory = shadowBuildDirectory(proFilePath, id, msgBuildConfigurationName(info));
infoList.append(info); infoList.append(info);
@@ -299,7 +299,8 @@ Qt4BuildConfiguration *Qt4BaseTarget::addQt4BuildConfiguration(QString defaultDi
QString displayName, QtSupport::BaseQtVersion *qtversion, QString displayName, QtSupport::BaseQtVersion *qtversion,
QtSupport::BaseQtVersion::QmakeBuildConfigs qmakeBuildConfiguration, QtSupport::BaseQtVersion::QmakeBuildConfigs qmakeBuildConfiguration,
QString additionalArguments, QString additionalArguments,
QString directory) QString directory,
bool importing)
{ {
Q_ASSERT(qtversion); Q_ASSERT(qtversion);
bool debug = qmakeBuildConfiguration & QtSupport::BaseQtVersion::DebugBuild; bool debug = qmakeBuildConfiguration & QtSupport::BaseQtVersion::DebugBuild;
@@ -324,8 +325,13 @@ Qt4BuildConfiguration *Qt4BaseTarget::addQt4BuildConfiguration(QString defaultDi
cleanStep->setClean(true); cleanStep->setClean(true);
cleanStep->setUserArguments("clean"); cleanStep->setUserArguments("clean");
cleanSteps->insertStep(0, cleanStep); cleanSteps->insertStep(0, cleanStep);
bool enableQmlDebugger
= Qt4BuildConfiguration::removeQMLInspectorFromArguments(&additionalArguments);
if (!additionalArguments.isEmpty()) if (!additionalArguments.isEmpty())
qmakeStep->setUserArguments(additionalArguments); qmakeStep->setUserArguments(additionalArguments);
if (importing)
qmakeStep->setLinkQmlDebuggingLibrary(enableQmlDebugger);
// set some options for qmake and make // set some options for qmake and make
if (qmakeBuildConfiguration & QtSupport::BaseQtVersion::BuildAll) // debug_and_release => explicit targets 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); specArgument = "-spec " + Utils::QtcProcess::quoteArg(parsedSpec);
} }
Utils::QtcProcess::addArgs(&specArgument, additionalArguments); Utils::QtcProcess::addArgs(&specArgument, additionalArguments);
Qt4BuildConfiguration::removeQMLInspectorFromArguments(&specArgument);
BuildConfigurationInfo info = BuildConfigurationInfo(version, BuildConfigurationInfo info = BuildConfigurationInfo(version,
makefileBuildConfig.first, makefileBuildConfig.first,

View File

@@ -82,7 +82,8 @@ public:
QtSupport::BaseQtVersion *qtversion, QtSupport::BaseQtVersion *qtversion,
QtSupport::BaseQtVersion::QmakeBuildConfigs qmakeBuildConfiguration, QtSupport::BaseQtVersion::QmakeBuildConfigs qmakeBuildConfiguration,
QString additionalArguments, QString additionalArguments,
QString directory); QString directory,
bool importing);
virtual void createApplicationProFiles() = 0; virtual void createApplicationProFiles() = 0;

View File

@@ -214,7 +214,7 @@ ProjectExplorer::Target *Qt4MaemoTargetFactory::create(ProjectExplorer::Project
foreach (const BuildConfigurationInfo &info, infos) foreach (const BuildConfigurationInfo &info, infos)
target->addQt4BuildConfiguration(msgBuildConfigurationName(info), QString(), target->addQt4BuildConfiguration(msgBuildConfigurationName(info), QString(),
info.version, info.buildConfig, info.version, info.buildConfig,
info.additionalArguments, info.directory); info.additionalArguments, info.directory, info.importing);
foreach (const QString &deployConfigId, deployConfigIds) { foreach (const QString &deployConfigId, deployConfigIds) {
target->addDeployConfiguration(target->createDeployConfiguration(deployConfigId)); target->addDeployConfiguration(target->createDeployConfiguration(deployConfigId));