diff options
author | Jarek Kobus <jaroslaw.kobus@qt.io> | 2023-07-12 14:51:25 +0200 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@qt.io> | 2023-07-13 09:24:52 +0000 |
commit | 60ef6e167e085222ed8181d18c26e07b324c465a (patch) | |
tree | 17595435f9637a76212f717d8e4b81a5771cc70f /src/plugins/autotoolsprojectmanager | |
parent | 52eeed5d0a891dfab33f843c28dc0eed8a3f6253 (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.cpp | 41 |
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 |