diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp index 9f06947fe952abd646c03651802bb2581accc0a5..2cf19f84217d83c76db278093606907651991deb 100644 --- a/src/plugins/qt4projectmanager/qmakestep.cpp +++ b/src/plugins/qt4projectmanager/qmakestep.cpp @@ -345,8 +345,12 @@ void QMakeStepConfigWidget::qmakeBuildConfigChanged() { Qt4BuildConfiguration *bc = m_step->qt4BuildConfiguration(); bool debug = bc->qmakeBuildConfiguration() & QtVersion::DebugBuild; + int index = debug ? 0 : 1; + if (bc->qmakeBuildConfiguration() & QtVersion::BuildAll) + index = 2; m_ignoreChange = true; - m_ui.buildConfigurationComboBox->setCurrentIndex(debug? 0 : 1); + m_ui.buildConfigurationComboBox->setCurrentIndex(index); + m_ignoreChange = false; updateSummaryLabel(); updateEffectiveQMakeCall(); @@ -379,11 +383,18 @@ void QMakeStepConfigWidget::buildConfigurationSelected() return; Qt4BuildConfiguration *bc = m_step->qt4BuildConfiguration(); QtVersion::QmakeBuildConfigs buildConfiguration = bc->qmakeBuildConfiguration(); - if (m_ui.buildConfigurationComboBox->currentIndex() == 0) { // debug - buildConfiguration = buildConfiguration | QtVersion::DebugBuild; - } else { - buildConfiguration = buildConfiguration & ~QtVersion::DebugBuild; + switch (m_ui.buildConfigurationComboBox->currentIndex()) { + case 0: + buildConfiguration = QtVersion::DebugBuild; + break; + case 1: + buildConfiguration = 0; + break; + case 2: + buildConfiguration = QtVersion::BuildAll; + break; } + m_ignoreChange = true; bc->setQMakeBuildConfiguration(buildConfiguration); m_ignoreChange = false; diff --git a/src/plugins/qt4projectmanager/qmakestep.ui b/src/plugins/qt4projectmanager/qmakestep.ui index 16618e9ae7b206be2f6411427eff80b328e71200..cf2214062d622fa154cab1eeb7c71950976b478d 100644 --- a/src/plugins/qt4projectmanager/qmakestep.ui +++ b/src/plugins/qt4projectmanager/qmakestep.ui @@ -39,6 +39,11 @@ <string>Release</string> </property> </item> + <item> + <property name="text"> + <string>Debug and release</string> + </property> + </item> </widget> </item> <item row="1" column="0"> diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp index 1e70599ebe0f19881058f9e4830290ac5245bf57..67c525a1db05da6dcf00233fa95826e4806abe99 100644 --- a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp @@ -390,9 +390,13 @@ void Qt4BuildConfiguration::getConfigCommandLineArguments(QStringList *addedUser if (addedUserConfigs) { if (!(defaultBuildConfiguration & QtVersion::BuildAll) && (userBuildConfiguration & QtVersion::BuildAll)) (*addedUserConfigs) << "debug_and_release"; - if ((defaultBuildConfiguration & QtVersion::DebugBuild) && !(userBuildConfiguration & QtVersion::DebugBuild)) + if ((defaultBuildConfiguration & QtVersion::DebugBuild) + && !(userBuildConfiguration & QtVersion::DebugBuild) + && !(userBuildConfiguration & QtVersion::BuildAll)) (*addedUserConfigs) << "release"; - if (!(defaultBuildConfiguration & QtVersion::DebugBuild) && (userBuildConfiguration & QtVersion::DebugBuild)) + if (!(defaultBuildConfiguration & QtVersion::DebugBuild) + && (userBuildConfiguration & QtVersion::DebugBuild) + && !(userBuildConfiguration & QtVersion::BuildAll)) (*addedUserConfigs) << "debug"; } } diff --git a/src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp b/src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp index 81fc09337ed8a5303bf5326afbf0003b3cd6a3f9..f1b1a53ccb2db6e488411d5525cfdfdab49c1033 100644 --- a/src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp +++ b/src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp @@ -34,6 +34,7 @@ #include "qt4project.h" #include "qt4projectmanagerconstants.h" #include "qt4target.h" +#include "qtversionmanager.h" #include <extensionsystem/pluginmanager.h> #include <projectexplorer/task.h> @@ -231,8 +232,10 @@ bool TargetSetupPage::setupProject(Qt4ProjectManager::Qt4Project *project) info.isTemporary = false; } - if ((info.buildConfig | QtVersion::DebugBuild) != info.buildConfig) - targetInfos.append(BuildConfigurationInfo(info.version, QtVersion::QmakeBuildConfigs(info.buildConfig | QtVersion::DebugBuild), + // If we have buildAll, then we want to havbe two BCs set up, one to build debug, + // the other to build release. + if (info.buildConfig & QtVersion::BuildAll) + targetInfos.append(BuildConfigurationInfo(info.version, info.buildConfig & ~(info.buildConfig & QtVersion::DebugBuild), info.additionalArguments, info.directory)); targetInfos.append(BuildConfigurationInfo(info.version, info.buildConfig, info.additionalArguments, info.directory)); @@ -506,10 +509,22 @@ void TargetSetupPage::updateVersionItem(QTreeWidgetItem *versionItem, int index) ImportInfo &info = m_infos[index]; QPair<QIcon, QString> issues = reportIssues(info.version); + //: We are going to build debug and release + QString buildType = tr("debug and release"); + if ((info.buildConfig & QtVersion::BuildAll) == 0) { + if (info.buildConfig & QtVersion::DebugBuild) + //: Debug build + buildType = tr("debug"); + else + //: release build + buildType = tr("release"); + } QString toolTip = QLatin1String("<nobr>"); toolTip = toolTip.append(info.version->displayName()); - toolTip.append(tr("<br>using %1", "%1: qmake used (incl. full path)"). - arg(QDir::toNativeSeparators(info.version->qmakeCommand()))); + //: %1: qmake used (incl. full path), %2: "debug", "release" or "debug and release" + toolTip.append(tr("<br>using %1 (%2)"). + arg(QDir::toNativeSeparators(info.version->qmakeCommand())). + arg(buildType)); if (!issues.second.isEmpty()) toolTip.append(QString::fromLatin1("<br><br>%1").arg(issues.second));