ProjectExplorer: Add a BuildConfiguration::regenerateBuildFiles

That's effectively a generic hook for "re-run qmake" without the
qmake/QmakeProjectManager dependency.

Change-Id: I236d40690cde9047831422b2651ed2284b220959
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
hjk
2018-07-03 15:09:51 +02:00
parent abc177efbc
commit 18b2865834
5 changed files with 35 additions and 13 deletions

View File

@@ -271,6 +271,12 @@ QString BuildConfiguration::disabledReason() const
return QString();
}
bool BuildConfiguration::regenerateBuildFiles(Node *node)
{
Q_UNUSED(node);
return false;
}
QString BuildConfiguration::buildTypeName(BuildConfiguration::BuildType type)
{
switch (type) {

View File

@@ -36,6 +36,7 @@ namespace ProjectExplorer {
class BuildInfo;
class NamedWidget;
class BuildStepList;
class Node;
class Kit;
class Target;
class IOutputParser;
@@ -79,6 +80,8 @@ public:
virtual bool isEnabled() const;
virtual QString disabledReason() const;
virtual bool regenerateBuildFiles(Node *node);
enum BuildType {
Unknown,
Debug,

View File

@@ -31,9 +31,7 @@
#include <android/androidmanager.h>
#include <android/androidpackageinstallationstep.h>
#include <projectexplorer/buildmanager.h>
#include <projectexplorer/buildsteplist.h>
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/target.h>
@@ -43,7 +41,6 @@
using namespace Android;
using namespace ProjectExplorer;
using namespace QmakeProjectManager;
namespace QmakeAndroidSupport {
namespace Internal {
@@ -93,15 +90,7 @@ void AndroidQmakeBuildConfiguration::manifestSaved()
updateCacheAndEmitEnvironmentChanged();
QMakeStep *qs = qmakeStep();
if (!qs)
return;
qs->setForced(true);
BuildManager::buildList(stepList(ProjectExplorer::Constants::BUILDSTEPS_CLEAN));
BuildManager::appendStep(qs, ProjectExplorerPlugin::displayNameForStepId(ProjectExplorer::Constants::BUILDSTEPS_CLEAN));
setSubNodeBuild(0);
regenerateBuildFiles();
}
} // namespace Internal

View File

@@ -38,20 +38,23 @@
#include <coreplugin/documentmanager.h>
#include <coreplugin/icore.h>
#include <projectexplorer/buildmanager.h>
#include <projectexplorer/buildsteplist.h>
#include <projectexplorer/kit.h>
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/projectmacroexpander.h>
#include <projectexplorer/target.h>
#include <projectexplorer/toolchain.h>
#include <projectexplorer/toolchainmanager.h>
#include <qtsupport/qtkitinformation.h>
#include <qtsupport/qtversionmanager.h>
#include <utils/mimetypes/mimedatabase.h>
#include <utils/qtcassert.h>
#include <utils/qtcprocess.h>
#include <utils/qtcassert.h>
#include <android/androidmanager.h>
#include <QDebug>
#include <QInputDialog>
@@ -696,4 +699,24 @@ bool QmakeBuildConfiguration::LastKitState::operator !=(const LastKitState &othe
return !operator ==(other);
}
bool QmakeBuildConfiguration::regenerateBuildFiles(Node *node)
{
QMakeStep *qs = qmakeStep();
if (!qs)
return false;
qs->setForced(true);
BuildManager::buildList(stepList(ProjectExplorer::Constants::BUILDSTEPS_CLEAN));
BuildManager::appendStep(qs, ProjectExplorerPlugin::displayNameForStepId(ProjectExplorer::Constants::BUILDSTEPS_CLEAN));
QmakeProFileNode *proFile = nullptr;
if (node && node != target()->project()->rootProjectNode())
proFile = dynamic_cast<QmakeProFileNode *>(node);
setSubNodeBuild(proFile);
return true;
}
} // namespace QmakeProjectManager

View File

@@ -113,6 +113,7 @@ signals:
protected:
bool fromMap(const QVariantMap &map) override;
bool regenerateBuildFiles(ProjectExplorer::Node *node = nullptr) override;
private:
void kitChanged();