Move a lot of qmake independent classes to a new plugin qtsupport

Also adjust qmldumptool to remove the dependency on qt4project/qmlproject, by
passing in the qtversion instead of figuring it out in qmldumptool.

Change-Id: Ie6ac582d36bfef290313c0716b33b62fcf42630c
Reviewed-on: http://codereview.qt.nokia.com/70
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
This commit is contained in:
dt
2011-05-20 21:40:53 +02:00
committed by Daniel Teske
parent dcd34febab
commit 754be1bcfc
135 changed files with 1124 additions and 733 deletions

View File

@@ -38,8 +38,6 @@
#include "qt4project.h"
#include "qt4basetargetfactory.h"
#include "qt4projectconfigwidget.h"
#include "qtversionfactory.h"
#include "baseqtversion.h"
#include <coreplugin/icore.h>
#include <extensionsystem/pluginmanager.h>
@@ -49,6 +47,8 @@
#include <projectexplorer/toolchainmanager.h>
#include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/task.h>
#include <qtsupport/qtversionfactory.h>
#include <qtsupport/baseqtversion.h>
#include <utils/pathchooser.h>
#include <utils/detailswidget.h>
@@ -58,6 +58,8 @@
#include <QtGui/QComboBox>
#include <QtGui/QMainWindow>
#include <algorithm>
using namespace Qt4ProjectManager;
using namespace Qt4ProjectManager::Internal;
@@ -78,7 +80,7 @@ Qt4BaseTargetFactory::~Qt4BaseTargetFactory()
Qt4TargetSetupWidget *Qt4BaseTargetFactory::createTargetSetupWidget(const QString &id,
const QString &proFilePath,
const QtVersionNumber &number,
const QtSupport::QtVersionNumber &number,
bool importEnabled,
QList<BuildConfigurationInfo> importInfos)
{
@@ -103,20 +105,20 @@ ProjectExplorer::Target *Qt4BaseTargetFactory::create(ProjectExplorer::Project *
return create(parent, id, w->buildConfigurationInfos());
}
QList<BuildConfigurationInfo> Qt4BaseTargetFactory::availableBuildConfigurations(const QString &id, const QString &proFilePath, const QtVersionNumber &minimumQtVersion)
QList<BuildConfigurationInfo> Qt4BaseTargetFactory::availableBuildConfigurations(const QString &id, const QString &proFilePath, const QtSupport::QtVersionNumber &minimumQtVersion)
{
QList<BuildConfigurationInfo> infoList;
QList<BaseQtVersion *> knownVersions = QtVersionManager::instance()->versionsForTargetId(id, minimumQtVersion);
QList<QtSupport::BaseQtVersion *> knownVersions = QtSupport::QtVersionManager::instance()->versionsForTargetId(id, minimumQtVersion);
foreach (BaseQtVersion *version, knownVersions) {
foreach (QtSupport::BaseQtVersion *version, knownVersions) {
if (!version->isValid() || !version->toolChainAvailable(id))
continue;
BaseQtVersion::QmakeBuildConfigs config = version->defaultBuildConfig();
QtSupport::BaseQtVersion::QmakeBuildConfigs config = version->defaultBuildConfig();
BuildConfigurationInfo info = BuildConfigurationInfo(version, config, QString(), QString());
info.directory = shadowBuildDirectory(proFilePath, id, msgBuildConfigurationName(info));
infoList.append(info);
info.buildConfig = config ^ BaseQtVersion::DebugBuild;
info.buildConfig = config ^ QtSupport::BaseQtVersion::DebugBuild;
info.directory = shadowBuildDirectory(proFilePath, id, msgBuildConfigurationName(info));
infoList.append(info);
}
@@ -174,11 +176,23 @@ Qt4BaseTargetFactory *Qt4BaseTargetFactory::qt4BaseTargetFactoryForId(const QStr
return 0;
}
QList<Qt4BaseTargetFactory *> Qt4BaseTargetFactory::qt4BaseTargetFactoriesForIds(const QStringList &ids)
{
QList<Qt4BaseTargetFactory *> factories;
foreach (const QString &id, ids)
if (Qt4BaseTargetFactory *factory = qt4BaseTargetFactoryForId(id))
factories << factory;
qSort(factories);
factories.erase(std::unique(factories.begin(), factories.end()), factories.end());
return factories;
}
// Return name of a build configuration.
QString Qt4BaseTargetFactory::msgBuildConfigurationName(const BuildConfigurationInfo &info)
{
const QString qtVersionName = info.version->displayName();
return (info.buildConfig & BaseQtVersion::DebugBuild) ?
return (info.buildConfig & QtSupport::BaseQtVersion::DebugBuild) ?
//: Name of a debug build configuration to created by a project wizard, %1 being the Qt version name. We recommend not translating it.
tr("%1 Debug").arg(qtVersionName) :
//: Name of a release build configuration to created by a project wizard, %1 being the Qt version name. We recommend not translating it.
@@ -263,13 +277,13 @@ void Qt4BaseTarget::removeUnconfiguredCustomExectutableRunConfigurations()
}
}
Qt4BuildConfiguration *Qt4BaseTarget::addQt4BuildConfiguration(QString displayName, BaseQtVersion *qtversion,
BaseQtVersion::QmakeBuildConfigs qmakeBuildConfiguration,
Qt4BuildConfiguration *Qt4BaseTarget::addQt4BuildConfiguration(QString displayName, QtSupport::BaseQtVersion *qtversion,
QtSupport::BaseQtVersion::QmakeBuildConfigs qmakeBuildConfiguration,
QString additionalArguments,
QString directory)
{
Q_ASSERT(qtversion);
bool debug = qmakeBuildConfiguration & BaseQtVersion::DebugBuild;
bool debug = qmakeBuildConfiguration & QtSupport::BaseQtVersion::DebugBuild;
// Add the buildconfiguration
Qt4BuildConfiguration *bc = new Qt4BuildConfiguration(this);
@@ -294,7 +308,7 @@ Qt4BuildConfiguration *Qt4BaseTarget::addQt4BuildConfiguration(QString displayNa
qmakeStep->setUserArguments(additionalArguments);
// set some options for qmake and make
if (qmakeBuildConfiguration & BaseQtVersion::BuildAll) // debug_and_release => explicit targets
if (qmakeBuildConfiguration & QtSupport::BaseQtVersion::BuildAll) // debug_and_release => explicit targets
makeStep->setUserArguments(debug ? "debug" : "release");
bc->setQMakeBuildConfiguration(qmakeBuildConfiguration);
@@ -368,7 +382,7 @@ Qt4DefaultTargetSetupWidget::Qt4DefaultTargetSetupWidget(Qt4BaseTargetFactory *f
const QString &id,
const QString &proFilePath,
const QList<BuildConfigurationInfo> &infos,
const QtVersionNumber &minimumQtVersion,
const QtSupport::QtVersionNumber &minimumQtVersion,
bool importEnabled,
const QList<BuildConfigurationInfo> &importInfos,
ShadowBuildOption shadowBuild)
@@ -584,8 +598,8 @@ void Qt4DefaultTargetSetupWidget::targetCheckBoxToggled(bool b)
QString Qt4DefaultTargetSetupWidget::displayNameFrom(const BuildConfigurationInfo &info)
{
QString buildType;
if ((info.buildConfig & BaseQtVersion::BuildAll) == 0) {
if (info.buildConfig & BaseQtVersion::DebugBuild)
if ((info.buildConfig & QtSupport::BaseQtVersion::BuildAll) == 0) {
if (info.buildConfig & QtSupport::BaseQtVersion::DebugBuild)
//: Debug build
buildType = tr("debug");
else
@@ -774,14 +788,14 @@ void Qt4DefaultTargetSetupWidget::setBuildConfigurationInfos(const QList<BuildCo
int oldQtVersionId = -1;
if (m_versionComboBox->currentIndex() != -1)
oldQtVersionId = m_versionComboBox->itemData(m_versionComboBox->currentIndex()).toInt();
QList<BaseQtVersion *> list;
QList<QtSupport::BaseQtVersion *> list;
foreach (const BuildConfigurationInfo &info, m_infos) {
if (!list.contains(info.version))
list << info.version;
}
m_ignoreChange = true;
m_versionComboBox->clear();
foreach (BaseQtVersion *v, list) {
foreach (QtSupport::BaseQtVersion *v, list) {
m_versionComboBox->addItem(v->displayName(), v->uniqueId());
if (v->uniqueId() == oldQtVersionId)
m_versionComboBox->setCurrentIndex(m_versionComboBox->count() - 1);
@@ -1005,9 +1019,9 @@ QPair<ProjectExplorer::Task::TaskType, QString> Qt4DefaultTargetSetupWidget::fin
QString buildDir = info.directory;
if (!m_shadowBuildEnabled->isChecked())
buildDir = QFileInfo(m_proFilePath).absolutePath();
BaseQtVersion *version = info.version;
QtSupport::BaseQtVersion *version = info.version;
QList<ProjectExplorer::Task> issues = version->reportIssues(m_proFilePath, buildDir, false);
QList<ProjectExplorer::Task> issues = version->reportIssues(m_proFilePath, buildDir);
QString text;
ProjectExplorer::Task::TaskType highestType = ProjectExplorer::Task::Unknown;
@@ -1080,23 +1094,23 @@ QList<BuildConfigurationInfo> BuildConfigurationInfo::importBuildConfigurations(
BuildConfigurationInfo BuildConfigurationInfo::checkForBuild(const QString &directory, const QString &proFilePath)
{
QString makefile = directory + "/Makefile";
QString qmakeBinary = QtVersionManager::findQMakeBinaryFromMakefile(makefile);
QString qmakeBinary = QtSupport::QtVersionManager::findQMakeBinaryFromMakefile(makefile);
if (qmakeBinary.isEmpty())
return BuildConfigurationInfo();
if (QtVersionManager::makefileIsFor(makefile, proFilePath) != QtVersionManager::SameProject)
if (QtSupport::QtVersionManager::makefileIsFor(makefile, proFilePath) != QtSupport::QtVersionManager::SameProject)
return BuildConfigurationInfo();
bool temporaryQtVersion = false;
BaseQtVersion *version = QtVersionManager::instance()->qtVersionForQMakeBinary(qmakeBinary);
QtSupport::BaseQtVersion *version = QtSupport::QtVersionManager::instance()->qtVersionForQMakeBinary(qmakeBinary);
if (!version) {
version = QtVersionFactory::createQtVersionFromQMakePath(qmakeBinary);
version = QtSupport::QtVersionFactory::createQtVersionFromQMakePath(qmakeBinary);
temporaryQtVersion = true;
if (!version)
return BuildConfigurationInfo();
}
QPair<BaseQtVersion::QmakeBuildConfigs, QString> makefileBuildConfig =
QtVersionManager::scanMakeFile(makefile, version->defaultBuildConfig());
QPair<QtSupport::BaseQtVersion::QmakeBuildConfigs, QString> makefileBuildConfig =
QtSupport::QtVersionManager::scanMakeFile(makefile, version->defaultBuildConfig());
QString additionalArguments = makefileBuildConfig.second;
QString parsedSpec = Qt4BuildConfiguration::extractSpecFromArguments(&additionalArguments, directory, version);