ProjectExplorer: Register some initial build steps by id

Helps to cut down BuildConfigration::setInitializer() usage.
Plan is to have more of that where feasible.

Change-Id: I138fcffc743daaf7068b5236c2a19c9ca0e3e2d4
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2019-12-06 18:42:11 +01:00
parent 78ffbe0ae7
commit 571fb04d59
6 changed files with 40 additions and 28 deletions

View File

@@ -45,8 +45,8 @@ namespace Internal {
// AutotoolsBuildConfiguration
AutotoolsBuildConfiguration::AutotoolsBuildConfiguration(Target *parent, Core::Id id)
: BuildConfiguration(parent, id)
AutotoolsBuildConfiguration::AutotoolsBuildConfiguration(Target *target, Core::Id id)
: BuildConfiguration(target, id)
{
// /<foobar> is used so the un-changed check in setBuildDirectory() works correctly.
// The leading / is to avoid the relative the path expansion in BuildConfiguration::buildDirectory.
@@ -54,29 +54,20 @@ AutotoolsBuildConfiguration::AutotoolsBuildConfiguration(Target *parent, Core::I
setBuildDirectoryHistoryCompleter("AutoTools.BuildDir.History");
setConfigWidgetDisplayName(tr("Autotools Manager"));
setInitializer([this](const BuildInfo &) {
// ### Build Steps Build ###
// autogen.sh or autoreconf
QFile autogenFile(target()->project()->projectDirectory().toString() + "/autogen.sh");
if (autogenFile.exists())
buildSteps()->appendStep(Constants::AUTOGEN_STEP_ID);
else
buildSteps()->appendStep(Constants::AUTORECONF_STEP_ID);
// ### Build Steps Build ###
QFile autogenFile(target->project()->projectDirectory().toString() + "/autogen.sh");
if (autogenFile.exists())
appendInitialBuildStep(Constants::AUTOGEN_STEP_ID); // autogen.sh
else
appendInitialBuildStep(Constants::AUTORECONF_STEP_ID); // autoreconf
// ./configure.
buildSteps()->appendStep(Constants::CONFIGURE_STEP_ID);
appendInitialBuildStep(Constants::CONFIGURE_STEP_ID); // ./configure.
appendInitialBuildStep(Constants::MAKE_STEP_ID); // make
// make
buildSteps()->appendStep(Constants::MAKE_STEP_ID);
// ### Build Steps Clean ###
cleanSteps()->appendStep(Constants::MAKE_STEP_ID);
});
// ### Build Steps Clean ###
appendInitialBuildStep(Constants::MAKE_STEP_ID);
}
// AutotoolsBuildConfiguration class
AutotoolsBuildConfigurationFactory::AutotoolsBuildConfigurationFactory()
{
registerBuildConfiguration<AutotoolsBuildConfiguration>