Remove support for !shadowBuild

In ancient times we needed to support some qt versions that didn't support shadow
building. This code has been unused for some versions now, so remove it completely.

Change-Id: I311f255d6bfed6841e94c9c383bd9929d0d55520
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
This commit is contained in:
Daniel Teske
2015-03-05 12:35:33 +01:00
parent 357d01817b
commit 74f67ffef4
13 changed files with 13 additions and 98 deletions

View File

@@ -182,7 +182,6 @@ BuildInfo *AutotoolsBuildConfigurationFactory::createBuildInfo(const Kit *k,
info->typeName = tr("Build"); info->typeName = tr("Build");
info->buildDirectory = buildDir; info->buildDirectory = buildDir;
info->kitId = k->id(); info->kitId = k->id();
info->supportsShadowBuild = true; // Works sometimes...
return info; return info;
} }

View File

@@ -275,7 +275,6 @@ CMakeBuildInfo *CMakeBuildConfigurationFactory::createBuildInfo(const ProjectExp
k->addToEnvironment(info->environment); k->addToEnvironment(info->environment);
info->useNinja = false; info->useNinja = false;
info->sourceDirectory = sourceDir; info->sourceDirectory = sourceDir;
info->supportsShadowBuild = true;
return info; return info;
} }

View File

@@ -45,7 +45,7 @@ class IBuildConfigurationFactory;
class PROJECTEXPLORER_EXPORT BuildInfo class PROJECTEXPLORER_EXPORT BuildInfo
{ {
public: public:
BuildInfo(const IBuildConfigurationFactory *f) : supportsShadowBuild(false), m_factory(f) { } BuildInfo(const IBuildConfigurationFactory *f) : m_factory(f) { }
virtual ~BuildInfo() { } virtual ~BuildInfo() { }
const IBuildConfigurationFactory *factory() const { return m_factory; } const IBuildConfigurationFactory *factory() const { return m_factory; }
@@ -54,7 +54,6 @@ public:
QString typeName; QString typeName;
Utils::FileName buildDirectory; Utils::FileName buildDirectory;
Core::Id kitId; Core::Id kitId;
bool supportsShadowBuild;
virtual QList<Task> reportIssues(const QString &projectPath, virtual QList<Task> reportIssues(const QString &projectPath,
const QString &buildDir) const const QString &buildDir) const

View File

@@ -179,9 +179,8 @@ void TargetSetupWidget::addBuildInfo(BuildInfo *info, bool isImport)
Utils::PathChooser *pathChooser = new Utils::PathChooser(); Utils::PathChooser *pathChooser = new Utils::PathChooser();
pathChooser->setExpectedKind(Utils::PathChooser::Directory); pathChooser->setExpectedKind(Utils::PathChooser::Directory);
pathChooser->setFileName(info->buildDirectory); pathChooser->setFileName(info->buildDirectory);
pathChooser->setEnabled(info->supportsShadowBuild);
pathChooser->setHistoryCompleter(QLatin1String("TargetSetup.BuildDir.History")); pathChooser->setHistoryCompleter(QLatin1String("TargetSetup.BuildDir.History"));
pathChooser->setReadOnly(!info->supportsShadowBuild || isImport); pathChooser->setReadOnly(isImport);
m_newBuildsLayout->addWidget(pathChooser, pos * 2, 1); m_newBuildsLayout->addWidget(pathChooser, pos * 2, 1);
QLabel *reportIssuesLabel = new QLabel; QLabel *reportIssuesLabel = new QLabel;

View File

@@ -376,7 +376,6 @@ BuildInfo *QbsBuildConfigurationFactory::createBuildInfo(const Kit *k,
info->typeName = tr("Build"); info->typeName = tr("Build");
info->kitId = k->id(); info->kitId = k->id();
info->type = type; info->type = type;
info->supportsShadowBuild = true;
return info; return info;
} }

View File

@@ -77,11 +77,6 @@ QString QmakeBuildConfiguration::shadowBuildDirectory(const QString &proFilePath
{ {
if (proFilePath.isEmpty()) if (proFilePath.isEmpty())
return QString(); return QString();
QFileInfo info(proFilePath);
BaseQtVersion *version = QtKitInformation::qtVersion(k);
if (version && !version->supportsShadowBuilds())
return info.absolutePath();
const QString projectName = QFileInfo(proFilePath).completeBaseName(); const QString projectName = QFileInfo(proFilePath).completeBaseName();
ProjectMacroExpander expander(projectName, k, suffix); ProjectMacroExpander expander(projectName, k, suffix);
@@ -90,14 +85,11 @@ QString QmakeBuildConfiguration::shadowBuildDirectory(const QString &proFilePath
return FileUtils::resolvePath(projectDir, buildPath); return FileUtils::resolvePath(projectDir, buildPath);
} }
static Utils::FileName defaultBuildDirectory(bool supportsShadowBuild, static Utils::FileName defaultBuildDirectory(const QString &projectPath,
const QString &projectPath,
const ProjectExplorer::Kit *k, const ProjectExplorer::Kit *k,
const QString &suffix) const QString &suffix)
{ {
if (supportsShadowBuild)
return Utils::FileName::fromString(QmakeBuildConfiguration::shadowBuildDirectory(projectPath, k, suffix)); return Utils::FileName::fromString(QmakeBuildConfiguration::shadowBuildDirectory(projectPath, k, suffix));
return ProjectExplorer::Project::projectDirectory(Utils::FileName::fromString(projectPath));
} }
const char QMAKE_BC_ID[] = "Qt4ProjectManager.Qt4BuildConfiguration"; const char QMAKE_BC_ID[] = "Qt4ProjectManager.Qt4BuildConfiguration";
@@ -160,8 +152,6 @@ bool QmakeBuildConfiguration::fromMap(const QVariantMap &map)
m_shadowBuild = map.value(QLatin1String(USE_SHADOW_BUILD_KEY), true).toBool(); m_shadowBuild = map.value(QLatin1String(USE_SHADOW_BUILD_KEY), true).toBool();
m_qmakeBuildConfiguration = BaseQtVersion::QmakeBuildConfigs(map.value(QLatin1String(BUILD_CONFIGURATION_KEY)).toInt()); m_qmakeBuildConfiguration = BaseQtVersion::QmakeBuildConfigs(map.value(QLatin1String(BUILD_CONFIGURATION_KEY)).toInt());
m_qtVersionSupportsShadowBuilds = supportsShadowBuilds();
m_lastKitState = LastKitState(target()->kit()); m_lastKitState = LastKitState(target()->kit());
connect(ProjectExplorer::ToolChainManager::instance(), SIGNAL(toolChainUpdated(ProjectExplorer::ToolChain*)), connect(ProjectExplorer::ToolChainManager::instance(), SIGNAL(toolChainUpdated(ProjectExplorer::ToolChain*)),
@@ -187,7 +177,6 @@ void QmakeBuildConfiguration::kitChanged()
// For that reason the QmakeBuildConfiguration is also connected // For that reason the QmakeBuildConfiguration is also connected
// to the toolchain and qtversion managers // to the toolchain and qtversion managers
emitProFileEvaluateNeeded(); emitProFileEvaluateNeeded();
updateShadowBuild();
m_lastKitState = newState; m_lastKitState = newState;
} }
} }
@@ -204,17 +193,6 @@ void QmakeBuildConfiguration::qtVersionsChanged(const QList<int> &,const QList<i
emitProFileEvaluateNeeded(); emitProFileEvaluateNeeded();
} }
void QmakeBuildConfiguration::updateShadowBuild()
{
// We also emit buildDirectoryChanged if the Qt version's supportShadowBuild changed
bool currentShadowBuild = supportsShadowBuilds();
if (currentShadowBuild != m_qtVersionSupportsShadowBuilds) {
if (!currentShadowBuild)
setBuildDirectory(target()->project()->projectDirectory());
m_qtVersionSupportsShadowBuilds = currentShadowBuild;
}
}
NamedWidget *QmakeBuildConfiguration::createConfigWidget() NamedWidget *QmakeBuildConfiguration::createConfigWidget()
{ {
return new QmakeProjectConfigWidget(this); return new QmakeProjectConfigWidget(this);
@@ -227,12 +205,6 @@ QString QmakeBuildConfiguration::defaultShadowBuildDirectory() const
target()->kit(), displayName()); target()->kit(), displayName());
} }
bool QmakeBuildConfiguration::supportsShadowBuilds()
{
BaseQtVersion *version = QtKitInformation::qtVersion(target()->kit());
return !version || version->supportsShadowBuilds();
}
/// If only a sub tree should be build this function returns which sub node /// If only a sub tree should be build this function returns which sub node
/// should be build /// should be build
/// \see QMakeBuildConfiguration::setSubNodeBuild /// \see QMakeBuildConfiguration::setSubNodeBuild
@@ -276,9 +248,6 @@ void QmakeBuildConfiguration::setBuildDirectory(const FileName &directory)
if (directory == buildDirectory()) if (directory == buildDirectory())
return; return;
BuildConfiguration::setBuildDirectory(directory); BuildConfiguration::setBuildDirectory(directory);
QTC_CHECK(supportsShadowBuilds()
|| (!supportsShadowBuilds()
&& buildDirectory() == target()->project()->projectDirectory()));
emitProFileEvaluateNeeded(); emitProFileEvaluateNeeded();
} }
@@ -389,7 +358,7 @@ QmakeBuildConfiguration::MakefileState QmakeBuildConfiguration::compareToImportF
// This copies the settings from userArgs to actualArgs (minus some we // This copies the settings from userArgs to actualArgs (minus some we
// are not interested in), splitting them up into individual strings: // are not interested in), splitting them up into individual strings:
extractSpecFromArguments(&userArgs, workingDirectory, version, &actualArgs); extractSpecFromArguments(&userArgs, workingDirectory, version, &actualArgs);
actualArgs = qs->deducedArguments() + actualArgs + qs->deducedArgumentsAfter(); actualArgs = qs->deducedArguments() + actualArgs;
FileName actualSpec = qs->mkspec(); FileName actualSpec = qs->mkspec();
QString qmakeArgs = result.second; QString qmakeArgs = result.second;
@@ -647,7 +616,6 @@ QmakeBuildInfo *QmakeBuildConfigurationFactory::createBuildInfo(const Kit *k,
info->typeName = tr("Build"); info->typeName = tr("Build");
// Leave info->buildDirectory unset; // Leave info->buildDirectory unset;
info->kitId = k->id(); info->kitId = k->id();
info->supportsShadowBuild = (version && version->supportsShadowBuilds());
// check if this project is in the source directory: // check if this project is in the source directory:
Utils::FileName projectFilePath = Utils::FileName::fromString(projectPath); Utils::FileName projectFilePath = Utils::FileName::fromString(projectPath);
@@ -661,8 +629,7 @@ QmakeBuildInfo *QmakeBuildConfigurationFactory::createBuildInfo(const Kit *k,
info->buildDirectory = Utils::FileName::fromString(absoluteBuildPath); info->buildDirectory = Utils::FileName::fromString(absoluteBuildPath);
} else { } else {
info->buildDirectory info->buildDirectory = defaultBuildDirectory(projectPath, k, suffix);
= defaultBuildDirectory(info->supportsShadowBuild, projectPath, k, suffix);
} }
info->type = type; info->type = type;
return info; return info;
@@ -745,8 +712,7 @@ void QmakeBuildConfigurationFactory::configureBuildConfiguration(Target *parent,
Utils::FileName directory = qmakeInfo->buildDirectory; Utils::FileName directory = qmakeInfo->buildDirectory;
if (directory.isEmpty()) { if (directory.isEmpty()) {
directory = defaultBuildDirectory(qmakeInfo->supportsShadowBuild, directory = defaultBuildDirectory(parent->project()->projectFilePath().toString(),
parent->project()->projectFilePath().toString(),
parent->kit(), qmakeInfo->displayName); parent->kit(), qmakeInfo->displayName);
} }

View File

@@ -108,9 +108,6 @@ public:
BuildType buildType() const; BuildType buildType() const;
/// returns whether the Qt version in the profile supports shadow building (also true for no Qt version)
bool supportsShadowBuilds();
public slots: public slots:
void emitProFileEvaluateNeeded(); void emitProFileEvaluateNeeded();
@@ -134,7 +131,6 @@ protected:
private: private:
void ctor(); void ctor();
QString defaultShadowBuildDirectory() const; QString defaultShadowBuildDirectory() const;
void updateShadowBuild();
class LastKitState class LastKitState
{ {
@@ -153,7 +149,6 @@ private:
bool m_shadowBuild; bool m_shadowBuild;
bool m_isEnabled; bool m_isEnabled;
bool m_qtVersionSupportsShadowBuilds;
QtSupport::BaseQtVersion::QmakeBuildConfigs m_qmakeBuildConfiguration; QtSupport::BaseQtVersion::QmakeBuildConfigs m_qmakeBuildConfiguration;
QmakeProjectManager::QmakeProFileNode *m_subNodeBuild; QmakeProjectManager::QmakeProFileNode *m_subNodeBuild;
ProjectExplorer::FileNode *m_fileNodeBuild; ProjectExplorer::FileNode *m_fileNodeBuild;

View File

@@ -54,7 +54,6 @@ public:
&& typeName == o.typeName && typeName == o.typeName
&& buildDirectory == o.buildDirectory && buildDirectory == o.buildDirectory
&& kitId == o.kitId && kitId == o.kitId
&& supportsShadowBuild == o.supportsShadowBuild
&& type == o.type && type == o.type
&& additionalArguments == o.additionalArguments; && additionalArguments == o.additionalArguments;
} }

View File

@@ -237,13 +237,6 @@ void QmakeProjectConfigWidget::updateProblemLabel()
} }
} }
QString shadowBuildWarning;
if (!version->supportsShadowBuilds() && m_buildConfiguration->isShadowBuild()) {
shadowBuildWarning = tr("The Qt version %1 does not support shadow builds, building might fail.")
.arg(version->displayName())
+ QLatin1String("<br>");
}
if (allGood) { if (allGood) {
QString buildDirectory = m_buildConfiguration->target()->project()->projectDirectory().toString(); QString buildDirectory = m_buildConfiguration->target()->project()->projectDirectory().toString();
if (m_buildConfiguration->isShadowBuild()) if (m_buildConfiguration->isShadowBuild())
@@ -252,8 +245,8 @@ void QmakeProjectConfigWidget::updateProblemLabel()
issues = version->reportIssues(proFileName, buildDirectory); issues = version->reportIssues(proFileName, buildDirectory);
Utils::sort(issues); Utils::sort(issues);
if (!issues.isEmpty() || !shadowBuildWarning.isEmpty()) { if (!issues.isEmpty()) {
QString text = QLatin1String("<nobr>") + shadowBuildWarning; QString text = QLatin1String("<nobr>");
foreach (const ProjectExplorer::Task &task, issues) { foreach (const ProjectExplorer::Task &task, issues) {
QString type; QString type;
switch (task.type) { switch (task.type) {
@@ -277,18 +270,15 @@ void QmakeProjectConfigWidget::updateProblemLabel()
return; return;
} }
} else if (targetMismatch) { } else if (targetMismatch) {
setProblemLabel(shadowBuildWarning + tr("A build for a different project exists in %1, which will be overwritten.", setProblemLabel(tr("A build for a different project exists in %1, which will be overwritten.",
"%1 build directory") "%1 build directory")
.arg(m_buildConfiguration->buildDirectory().toUserOutput())); .arg(m_buildConfiguration->buildDirectory().toUserOutput()));
return; return;
} else if (incompatibleBuild) { } else if (incompatibleBuild) {
setProblemLabel(shadowBuildWarning +tr("An incompatible build exists in %1, which will be overwritten.", setProblemLabel(tr("An incompatible build exists in %1, which will be overwritten.",
"%1 build directory") "%1 build directory")
.arg(m_buildConfiguration->buildDirectory().toUserOutput())); .arg(m_buildConfiguration->buildDirectory().toUserOutput()));
return; return;
} else if (!shadowBuildWarning.isEmpty()) {
setProblemLabel(shadowBuildWarning);
return;
} }
setProblemLabel(QString()); setProblemLabel(QString());

View File

@@ -159,9 +159,6 @@ QString QMakeStep::allArguments(bool shorted)
QString args = QtcProcess::joinArgs(arguments); QString args = QtcProcess::joinArgs(arguments);
// User arguments // User arguments
QtcProcess::addArgs(&args, m_userArgs); QtcProcess::addArgs(&args, m_userArgs);
// moreArgumentsAfter
foreach (const QString &arg, deducedArgumentsAfter())
QtcProcess::addArg(&args, arg);
return args; return args;
} }
@@ -199,25 +196,6 @@ QStringList QMakeStep::deducedArguments()
return arguments; return arguments;
} }
/// -after OBJECTS_DIR, MOC_DIR, UI_DIR, RCC_DIR
QStringList QMakeStep::deducedArgumentsAfter()
{
QtSupport::BaseQtVersion *version = QtSupport::QtKitInformation::qtVersion(target()->kit());
if (version && !version->supportsShadowBuilds()) {
// We have a target which does not allow shadow building.
// But we really don't want to have the build artefacts in the source dir
// so we try to hack around it, to make the common cases work.
// This is a HACK, remove once all make generators support
// shadow building
return QStringList() << QLatin1String("-after")
<< QLatin1String("OBJECTS_DIR=obj")
<< QLatin1String("MOC_DIR=moc")
<< QLatin1String("UI_DIR=ui")
<< QLatin1String("RCC_DIR=rcc");
}
return QStringList();
}
bool QMakeStep::init() bool QMakeStep::init()
{ {
QmakeBuildConfiguration *qt4bc = qmakeBuildConfiguration(); QmakeBuildConfiguration *qt4bc = qmakeBuildConfiguration();

View File

@@ -102,8 +102,6 @@ public:
QString allArguments(bool shorted = false); QString allArguments(bool shorted = false);
// deduced arguments e.g. qmljs debugging // deduced arguments e.g. qmljs debugging
QStringList deducedArguments(); QStringList deducedArguments();
// deduced arguments with -after, e.g. OBJECTS_DIR for symbian
QStringList deducedArgumentsAfter();
// arguments passed to the pro file parser // arguments passed to the pro file parser
QStringList parserArguments(); QStringList parserArguments();
// arguments set by the user // arguments set by the user

View File

@@ -1202,11 +1202,6 @@ void BaseQtVersion::recheckDumper()
m_versionInfoUpToDate = false; m_versionInfoUpToDate = false;
} }
bool BaseQtVersion::supportsShadowBuilds() const
{
return true;
}
QList<Task> BaseQtVersion::reportIssuesImpl(const QString &proFile, const QString &buildDir) const QList<Task> BaseQtVersion::reportIssuesImpl(const QString &proFile, const QString &buildDir) const
{ {
QList<Task> results; QList<Task> results;

View File

@@ -172,7 +172,6 @@ public:
virtual QmakeBuildConfigs defaultBuildConfig() const; virtual QmakeBuildConfigs defaultBuildConfig() const;
virtual void recheckDumper(); virtual void recheckDumper();
virtual bool supportsShadowBuilds() const;
/// Check a .pro-file/Qt version combination on possible issues /// Check a .pro-file/Qt version combination on possible issues
/// @return a list of tasks, ordered on severity (errors first, then /// @return a list of tasks, ordered on severity (errors first, then