forked from qt-creator/qt-creator
AutogenStep: Employ task tree for running
Task-number: QTCREATORBUG-29168 Change-Id: I5b0cb5832d91f4147b273475304a1bba1dd08700 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
#include <projectexplorer/target.h>
|
||||
|
||||
#include <utils/aspects.h>
|
||||
#include <utils/process.h>
|
||||
|
||||
#include <QDateTime>
|
||||
|
||||
@@ -71,27 +72,31 @@ AutogenStep::AutogenStep(BuildStepList *bsl, Id id) : AbstractProcessStep(bsl, i
|
||||
|
||||
void AutogenStep::doRun()
|
||||
{
|
||||
// Check whether we need to run autogen.sh
|
||||
const FilePath projectDir = project()->projectDirectory();
|
||||
const FilePath configure = projectDir / "configure";
|
||||
const FilePath configureAc = projectDir / "configure.ac";
|
||||
const FilePath makefileAm = projectDir / "Makefile.am";
|
||||
using namespace Tasking;
|
||||
|
||||
if (!configure.exists()
|
||||
|| configure.lastModified() < configureAc.lastModified()
|
||||
|| configure.lastModified() < makefileAm.lastModified()) {
|
||||
m_runAutogen = true;
|
||||
}
|
||||
const auto onSetup = [this] {
|
||||
// Check whether we need to run autogen.sh
|
||||
const FilePath projectDir = project()->projectDirectory();
|
||||
const FilePath configure = projectDir / "configure";
|
||||
const FilePath configureAc = projectDir / "configure.ac";
|
||||
const FilePath makefileAm = projectDir / "Makefile.am";
|
||||
|
||||
if (!m_runAutogen) {
|
||||
emit addOutput(Tr::tr("Configuration unchanged, skipping autogen step."),
|
||||
OutputFormat::NormalMessage);
|
||||
emit finished(true);
|
||||
return;
|
||||
}
|
||||
if (!configure.exists()
|
||||
|| configure.lastModified() < configureAc.lastModified()
|
||||
|| configure.lastModified() < makefileAm.lastModified()) {
|
||||
m_runAutogen = true;
|
||||
}
|
||||
|
||||
m_runAutogen = false;
|
||||
AbstractProcessStep::doRun();
|
||||
if (!m_runAutogen) {
|
||||
emit addOutput(Tr::tr("Configuration unchanged, skipping autogen step."),
|
||||
OutputFormat::NormalMessage);
|
||||
return SetupResult::StopWithDone;
|
||||
}
|
||||
return SetupResult::Continue;
|
||||
};
|
||||
const auto onDone = [this] { m_runAutogen = false; };
|
||||
|
||||
runTaskTree({onGroupSetup(onSetup), onGroupDone(onDone), defaultProcessTask()});
|
||||
}
|
||||
|
||||
// AutogenStepFactory
|
||||
|
Reference in New Issue
Block a user