summaryrefslogtreecommitdiff
path: root/src/plugins/qmakeprojectmanager
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2018-07-03 15:09:51 +0200
committerhjk <hjk@qt.io>2018-07-10 09:57:55 +0000
commit18b28658349fb1bce8d22efd8ee5ff69caa3e72c (patch)
treea19354888deaa0150bd26115d171617d55fbc032 /src/plugins/qmakeprojectmanager
parentabc177efbc692e7a2735222cf54381b56f7bbd69 (diff)
downloadqt-creator-18b28658349fb1bce8d22efd8ee5ff69caa3e72c.tar.gz
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>
Diffstat (limited to 'src/plugins/qmakeprojectmanager')
-rw-r--r--src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp25
-rw-r--r--src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h1
2 files changed, 25 insertions, 1 deletions
diff --git a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp
index 572adb1a76..191778bcd4 100644
--- a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp
+++ b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp
@@ -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
diff --git a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h
index 62685a36b8..d7a0996a44 100644
--- a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h
+++ b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h
@@ -113,6 +113,7 @@ signals:
protected:
bool fromMap(const QVariantMap &map) override;
+ bool regenerateBuildFiles(ProjectExplorer::Node *node = nullptr) override;
private:
void kitChanged();