From 60ef6e167e085222ed8181d18c26e07b324c465a Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Wed, 12 Jul 2023 14:51:25 +0200 Subject: [PATCH] ConfigureStep: Employ task tree for running Task-number: QTCREATORBUG-29168 Change-Id: I54281a6aaead85ca76f804956114e7c6dafeb28c Reviewed-by: hjk --- .../autotoolsprojectmanager/configurestep.cpp | 39 +++++++++++-------- 1 file changed, 22 insertions(+), 17 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 #include +#include #include @@ -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; - } + if (!configStatus.exists() || configStatus.lastModified() < configure.lastModified()) + m_runConfigure = true; - ProcessParameters *param = processParameters(); - if (!param->effectiveCommand().exists()) { - param->setCommandLine(getCommandLine(param->command().arguments())); - setSummaryText(param->summaryInWorkdir(displayName())); - } + if (!m_runConfigure) { + emit addOutput(Tr::tr("Configuration unchanged, skipping configure step."), OutputFormat::NormalMessage); + return SetupResult::StopWithDone; + } - m_runConfigure = false; - AbstractProcessStep::doRun(); + 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