From 406d853e2b262f6bfa0d9c2ac037982a6290f036 Mon Sep 17 00:00:00 2001 From: dt <qtc-committer@nokia.com> Date: Tue, 21 Jul 2009 14:50:54 +0200 Subject: [PATCH] Move the qmake config settign into qt4project. One less need for qmakestep. --- .../qt4projectmanager/projectloadwizard.cpp | 23 +++++++++---------- src/plugins/qt4projectmanager/qmakestep.cpp | 12 +++++----- .../qt-s60/gccetoolchain.cpp | 2 +- .../qt-s60/s60devicerunconfiguration.cpp | 2 +- .../qt-s60/s60emulatorrunconfiguration.cpp | 2 +- src/plugins/qt4projectmanager/qt4project.cpp | 19 +++++++++++++++ .../qt4projectconfigwidget.cpp | 3 +-- .../qt4projectmanager/qt4runconfiguration.cpp | 2 +- 8 files changed, 41 insertions(+), 24 deletions(-) diff --git a/src/plugins/qt4projectmanager/projectloadwizard.cpp b/src/plugins/qt4projectmanager/projectloadwizard.cpp index 2aa999114c4..44de7c6e5a5 100644 --- a/src/plugins/qt4projectmanager/projectloadwizard.cpp +++ b/src/plugins/qt4projectmanager/projectloadwizard.cpp @@ -93,35 +93,34 @@ ProjectLoadWizard::~ProjectLoadWizard() } -void ProjectLoadWizard::addBuildConfiguration(QString name, QtVersion *qtversion, QtVersion::QmakeBuildConfig buildConfiguration) +void ProjectLoadWizard::addBuildConfiguration(QString buildConfigurationName, QtVersion *qtversion, QtVersion::QmakeBuildConfig qmakeBuildConfiguration) { - QMakeStep *qmakeStep = m_project->qmakeStep(); MakeStep *makeStep = m_project->makeStep(); - bool debug = buildConfiguration & QtVersion::DebugBuild; + bool debug = qmakeBuildConfiguration & QtVersion::DebugBuild; // Check that bc.name is not already in use - if (m_project->buildConfigurations().contains(name)) { + if (m_project->buildConfigurations().contains(buildConfigurationName)) { int i =1; do { ++i; - } while (m_project->buildConfigurations().contains(name + " " + QString::number(i))); - name.append(" " + QString::number(i)); + } while (m_project->buildConfigurations().contains(buildConfigurationName + " " + QString::number(i))); + buildConfigurationName.append(" " + QString::number(i)); } // Add the buildconfiguration - m_project->addBuildConfiguration(name); + m_project->addBuildConfiguration(buildConfigurationName); // set some options for qmake and make - if (buildConfiguration & QtVersion::BuildAll) // debug_and_release => explicit targets - makeStep->setValue(name, "makeargs", QStringList() << (debug ? "debug" : "release")); + if (qmakeBuildConfiguration & QtVersion::BuildAll) // debug_and_release => explicit targets + makeStep->setValue(buildConfigurationName, "makeargs", QStringList() << (debug ? "debug" : "release")); - qmakeStep->setValue(name, "buildConfiguration", int(buildConfiguration)); + m_project->setValue(buildConfigurationName, "buildConfiguration", int(qmakeBuildConfiguration)); // Finally set the qt version bool defaultQtVersion = (qtversion == 0); if (defaultQtVersion) - m_project->setQtVersion(name, 0); + m_project->setQtVersion(buildConfigurationName, 0); else - m_project->setQtVersion(name, qtversion->uniqueId()); + m_project->setQtVersion(buildConfigurationName, qtversion->uniqueId()); } void ProjectLoadWizard::done(int result) diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp index 300bf60a7e4..5494ff815c0 100644 --- a/src/plugins/qt4projectmanager/qmakestep.cpp +++ b/src/plugins/qt4projectmanager/qmakestep.cpp @@ -67,10 +67,10 @@ QStringList QMakeStep::arguments(const QString &buildConfiguration) arguments << "-r"; - if (value(buildConfiguration, "buildConfiguration").isValid()) { + if (project()->value(buildConfiguration, "buildConfiguration").isValid()) { QStringList configarguments; QtVersion::QmakeBuildConfig defaultBuildConfiguration = m_pro->qtVersion(buildConfiguration)->defaultBuildConfig(); - QtVersion::QmakeBuildConfig projectBuildConfiguration = QtVersion::QmakeBuildConfig(value(buildConfiguration, "buildConfiguration").toInt()); + QtVersion::QmakeBuildConfig projectBuildConfiguration = QtVersion::QmakeBuildConfig(project()->value(buildConfiguration, "buildConfiguration").toInt()); if ((defaultBuildConfiguration & QtVersion::BuildAll) && !(projectBuildConfiguration & QtVersion::BuildAll)) configarguments << "CONFIG-=debug_and_release"; if (!(defaultBuildConfiguration & QtVersion::BuildAll) && (projectBuildConfiguration & QtVersion::BuildAll)) @@ -82,7 +82,7 @@ QStringList QMakeStep::arguments(const QString &buildConfiguration) if (!configarguments.isEmpty()) arguments << configarguments; } else { - arguments << "CONFIG+=debug_and_release"; + qWarning()<< "The project should always have a qmake build configuration set"; } if (!additonalArguments.isEmpty()) @@ -231,14 +231,14 @@ void QMakeStepConfigWidget::qmakeArgumentsLineEditTextEdited() void QMakeStepConfigWidget::buildConfigurationChanged() { - QtVersion::QmakeBuildConfig buildConfiguration = QtVersion::QmakeBuildConfig(m_step->value(m_buildConfiguration, "buildConfiguration").toInt()); + QtVersion::QmakeBuildConfig buildConfiguration = QtVersion::QmakeBuildConfig(m_step->project()->value(m_buildConfiguration, "buildConfiguration").toInt()); if (m_ui.buildConfigurationComboBox->currentIndex() == 0) { // debug buildConfiguration = QtVersion::QmakeBuildConfig(buildConfiguration | QtVersion::DebugBuild); } else { buildConfiguration = QtVersion::QmakeBuildConfig(buildConfiguration & ~QtVersion::DebugBuild); } - m_step->setValue(m_buildConfiguration, "buildConfiguration", int(buildConfiguration)); + m_step->project()->setValue(m_buildConfiguration, "buildConfiguration", int(buildConfiguration)); m_ui.qmakeArgumentsEdit->setPlainText(ProjectExplorer::Environment::joinArgumentList(m_step->arguments(m_buildConfiguration))); static_cast<Qt4Project *>(m_step->project())->invalidateCachedTargetInformation(); } @@ -254,7 +254,7 @@ void QMakeStepConfigWidget::init(const QString &buildConfiguration) QString qmakeArgs = ProjectExplorer::Environment::joinArgumentList(m_step->value(buildConfiguration, "qmakeArgs").toStringList()); m_ui.qmakeAdditonalArgumentsLineEdit->setText(qmakeArgs); m_ui.qmakeArgumentsEdit->setPlainText(ProjectExplorer::Environment::joinArgumentList(m_step->arguments(buildConfiguration))); - bool debug = QtVersion::QmakeBuildConfig(m_step->value(buildConfiguration, "buildConfiguration").toInt()) & QtVersion::DebugBuild; + bool debug = QtVersion::QmakeBuildConfig(m_step->project()->value(buildConfiguration, "buildConfiguration").toInt()) & QtVersion::DebugBuild; m_ui.buildConfigurationComboBox->setCurrentIndex(debug? 0 : 1); } diff --git a/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp b/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp index 60eaf1ebcea..89e0458aed7 100644 --- a/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp @@ -84,7 +84,7 @@ QString GCCEToolChain::defaultMakeTarget() const { const Qt4Project *qt4project = qobject_cast<const Qt4Project *>(m_project); if (qt4project) { - if (!(QtVersion::QmakeBuildConfig(qt4project->qmakeStep()->value( + if (!(QtVersion::QmakeBuildConfig(qt4project->value( qt4project->activeBuildConfiguration(), "buildConfiguration").toInt()) & QtVersion::DebugBuild)) { return "release-gcce"; diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp index f7d3c7af67e..c9e470978d1 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp @@ -163,7 +163,7 @@ void S60DeviceRunConfiguration::updateTarget() // Find out what flags we pass on to qmake, this code is duplicated in the qmake step QtVersion::QmakeBuildConfig defaultBuildConfiguration = qtVersion->defaultBuildConfig(); - QtVersion::QmakeBuildConfig projectBuildConfiguration = QtVersion::QmakeBuildConfig(pro->qmakeStep()->value(pro->activeBuildConfiguration(), "buildConfiguration").toInt()); + QtVersion::QmakeBuildConfig projectBuildConfiguration = QtVersion::QmakeBuildConfig(pro->value(pro->activeBuildConfiguration(), "buildConfiguration").toInt()); QStringList addedUserConfigArguments; QStringList removedUserConfigArguments; if ((defaultBuildConfiguration & QtVersion::BuildAll) && !(projectBuildConfiguration & QtVersion::BuildAll)) diff --git a/src/plugins/qt4projectmanager/qt-s60/s60emulatorrunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-s60/s60emulatorrunconfiguration.cpp index d01439ce021..ac618ef190c 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60emulatorrunconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60emulatorrunconfiguration.cpp @@ -123,7 +123,7 @@ void S60EmulatorRunConfiguration::updateTarget() // Find out what flags we pass on to qmake, this code is duplicated in the qmake step QtVersion::QmakeBuildConfig defaultBuildConfiguration = qtVersion->defaultBuildConfig(); - QtVersion::QmakeBuildConfig projectBuildConfiguration = QtVersion::QmakeBuildConfig(pro->qmakeStep()->value(pro->activeBuildConfiguration(), "buildConfiguration").toInt()); + QtVersion::QmakeBuildConfig projectBuildConfiguration = QtVersion::QmakeBuildConfig(pro->value(pro->activeBuildConfiguration(), "buildConfiguration").toInt()); QStringList addedUserConfigArguments; QStringList removedUserConfigArguments; if ((defaultBuildConfiguration & QtVersion::BuildAll) && !(projectBuildConfiguration & QtVersion::BuildAll)) diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp index 11bd2b8a76f..adbe99c9053 100644 --- a/src/plugins/qt4projectmanager/qt4project.cpp +++ b/src/plugins/qt4projectmanager/qt4project.cpp @@ -721,6 +721,25 @@ void Qt4Project::addDefaultBuild() ProjectLoadWizard wizard(this); wizard.execDialog(); } else { + // Migrate settings + QMakeStep *qs = 0; + foreach(BuildStep *bs, buildSteps()) + if ( (qs = qobject_cast<QMakeStep *>(bs)) != 0) + break; + + foreach (const QString &buildConfiguration, buildConfigurations()) { + QVariant v = qs->value(buildConfiguration, "buildConfiguration"); + if (v.isValid()) { + qs->setValue(buildConfiguration, "buildConfiguration", QVariant()); + setValue(buildConfiguration, "buildConfiguration", v); + } else { + if (QtVersion *version = qtVersion(buildConfiguration)) + setValue(buildConfiguration, "buildConfiguration", version->defaultBuildConfig()); + else + setValue(buildConfiguration, "buildConfiguration", int(QtVersion::BuildAll & QtVersion::DebugBuild)); + } + } + // Restoring configuration foreach(const QString &bc, buildConfigurations()) { setValue(bc, "addQDumper", QVariant()); diff --git a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp index 3e86d948a7b..d237cf13d01 100644 --- a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp +++ b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp @@ -235,10 +235,9 @@ void Qt4ProjectConfigWidget::importLabelClicked() // Combo box will be updated at the end // Find qmakestep... - QMakeStep *qmakeStep = m_pro->qmakeStep(); MakeStep *makeStep = m_pro->makeStep(); - qmakeStep->setValue(m_buildConfiguration, "buildConfiguration", int(qmakeBuildConfig)); + m_pro->setValue(m_buildConfiguration, "buildConfiguration", int(qmakeBuildConfig)); // Adjust command line arguments, this is ugly as hell // If we are switching to BuildAll we want "release" in there and no "debug" // or "debug" in there and no "release" diff --git a/src/plugins/qt4projectmanager/qt4runconfiguration.cpp b/src/plugins/qt4projectmanager/qt4runconfiguration.cpp index e8fc87fc7b5..e5832ce95f3 100644 --- a/src/plugins/qt4projectmanager/qt4runconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt4runconfiguration.cpp @@ -551,7 +551,7 @@ void Qt4RunConfiguration::updateTarget() // Find out what flags we pass on to qmake, this code is duplicated in the qmake step QtVersion::QmakeBuildConfig defaultBuildConfiguration = pro->qtVersion(pro->activeBuildConfiguration())->defaultBuildConfig(); - QtVersion::QmakeBuildConfig projectBuildConfiguration = QtVersion::QmakeBuildConfig(pro->qmakeStep()->value(pro->activeBuildConfiguration(), "buildConfiguration").toInt()); + QtVersion::QmakeBuildConfig projectBuildConfiguration = QtVersion::QmakeBuildConfig(pro->value(pro->activeBuildConfiguration(), "buildConfiguration").toInt()); QStringList addedUserConfigArguments; QStringList removedUserConfigArguments; if ((defaultBuildConfiguration & QtVersion::BuildAll) && !(projectBuildConfiguration & QtVersion::BuildAll)) -- GitLab