diff options
author | hjk <hjk@qt.io> | 2018-07-03 15:09:51 +0200 |
---|---|---|
committer | hjk <hjk@qt.io> | 2018-07-10 09:57:55 +0000 |
commit | 18b28658349fb1bce8d22efd8ee5ff69caa3e72c (patch) | |
tree | a19354888deaa0150bd26115d171617d55fbc032 /src/plugins/qmakeprojectmanager | |
parent | abc177efbc692e7a2735222cf54381b56f7bbd69 (diff) | |
download | qt-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.cpp | 25 | ||||
-rw-r--r-- | src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h | 1 |
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(); |