Move generic make step to project explorer

As a first step of creating a generic base for the 3 existing
implementations.

Change-Id: I2456db74cb635316f97a247e2a2b6bdb34931440
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
Eike Ziller
2018-05-09 09:48:23 +02:00
parent 01dd22dc08
commit 0db5f13dd1
11 changed files with 395 additions and 285 deletions

View File

@@ -25,70 +25,21 @@
#pragma once
#include <projectexplorer/abstractprocessstep.h>
#include <projectexplorer/makestep.h>
QT_FORWARD_DECLARE_CLASS(QListWidgetItem);
namespace GenericProjectManager {
namespace Internal {
class GenericMakeStepConfigWidget;
namespace Ui { class GenericMakeStep; }
class GenericMakeStep : public ProjectExplorer::AbstractProcessStep
class GenericMakeStep : public ProjectExplorer::MakeStep
{
Q_OBJECT
friend class GenericMakeStepConfigWidget;
public:
explicit GenericMakeStep(ProjectExplorer::BuildStepList *parent, const QString &buildTarget = {});
bool init(QList<const BuildStep *> &earlierSteps) override;
void run(QFutureInterface<bool> &fi) override;
ProjectExplorer::BuildStepConfigWidget *createConfigWidget() override;
bool immutable() const override;
bool buildsTarget(const QString &target) const;
void setBuildTarget(const QString &target, bool on);
QString allArguments() const;
QString makeCommand(const Utils::Environment &environment) const;
void setClean(bool clean);
bool isClean() const;
private:
QVariantMap toMap() const override;
bool fromMap(const QVariantMap &map) override;
QStringList m_buildTargets;
QString m_makeArguments;
QString m_makeCommand;
bool m_clean = false;
};
class GenericMakeStepConfigWidget : public ProjectExplorer::BuildStepConfigWidget
{
Q_OBJECT
public:
explicit GenericMakeStepConfigWidget(GenericMakeStep *makeStep);
~GenericMakeStepConfigWidget() override;
QString displayName() const override;
QString summaryText() const override;
private:
void itemChanged(QListWidgetItem *item);
void makeLineEditTextEdited();
void makeArgumentsLineEditTextEdited();
void updateMakeOverrideLabel();
void updateDetails();
Ui::GenericMakeStep *m_ui;
GenericMakeStep *m_makeStep;
QString m_summaryText;
};
class GenericMakeAllStepFactory : public ProjectExplorer::BuildStepFactory