aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/autotoolsprojectmanager
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2023-07-12 14:51:25 +0200
committerJarek Kobus <jaroslaw.kobus@qt.io>2023-07-13 09:24:52 +0000
commit60ef6e167e085222ed8181d18c26e07b324c465a (patch)
tree17595435f9637a76212f717d8e4b81a5771cc70f /src/plugins/autotoolsprojectmanager
parent52eeed5d0a891dfab33f843c28dc0eed8a3f6253 (diff)
ConfigureStep: Employ task tree for running
Task-number: QTCREATORBUG-29168 Change-Id: I54281a6aaead85ca76f804956114e7c6dafeb28c Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/plugins/autotoolsprojectmanager')
-rw-r--r--src/plugins/autotoolsprojectmanager/configurestep.cpp41
1 files changed, 23 insertions, 18 deletions
diff --git a/src/plugins/autotoolsprojectmanager/configurestep.cpp b/src/plugins/autotoolsprojectmanager/configurestep.cpp
index 2eaf905f5a6..58515990182 100644
--- a/src/plugins/autotoolsprojectmanager/configurestep.cpp
+++ b/src/plugins/autotoolsprojectmanager/configurestep.cpp
@@ -13,6 +13,7 @@
#include <projectexplorer/target.h>
#include <utils/aspects.h>
+#include <utils/process.h>
#include <QDateTime>
@@ -75,27 +76,31 @@ private:
void ConfigureStep::doRun()
{
- // Check whether we need to run configure
- const FilePath configure = project()->projectDirectory() / "configure";
- const FilePath configStatus = buildDirectory() / "config.status";
+ using namespace Tasking;
- if (!configStatus.exists() || configStatus.lastModified() < configure.lastModified())
- m_runConfigure = true;
+ const auto onSetup = [this] {
+ // Check whether we need to run configure
+ const FilePath configure = project()->projectDirectory() / "configure";
+ const FilePath configStatus = buildDirectory() / "config.status";
- if (!m_runConfigure) {
- emit addOutput(Tr::tr("Configuration unchanged, skipping configure step."), OutputFormat::NormalMessage);
- emit finished(true);
- return;
- }
-
- ProcessParameters *param = processParameters();
- if (!param->effectiveCommand().exists()) {
- param->setCommandLine(getCommandLine(param->command().arguments()));
- setSummaryText(param->summaryInWorkdir(displayName()));
- }
+ if (!configStatus.exists() || configStatus.lastModified() < configure.lastModified())
+ m_runConfigure = true;
- m_runConfigure = false;
- AbstractProcessStep::doRun();
+ if (!m_runConfigure) {
+ emit addOutput(Tr::tr("Configuration unchanged, skipping configure step."), OutputFormat::NormalMessage);
+ return SetupResult::StopWithDone;
+ }
+
+ ProcessParameters *param = processParameters();
+ if (!param->effectiveCommand().exists()) {
+ param->setCommandLine(getCommandLine(param->command().arguments()));
+ setSummaryText(param->summaryInWorkdir(displayName()));
+ }
+ return SetupResult::Continue;
+ };
+ const auto onDone = [this] { m_runConfigure = false; };
+
+ runTaskTree({onGroupSetup(onSetup), onGroupDone(onDone), defaultProcessTask()});
}
// ConfigureStepFactory