aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer/buildstep.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/projectexplorer/buildstep.h')
-rw-r--r--src/plugins/projectexplorer/buildstep.h53
1 files changed, 35 insertions, 18 deletions
diff --git a/src/plugins/projectexplorer/buildstep.h b/src/plugins/projectexplorer/buildstep.h
index 2b2cfe64a2..f736e2474e 100644
--- a/src/plugins/projectexplorer/buildstep.h
+++ b/src/plugins/projectexplorer/buildstep.h
@@ -26,6 +26,8 @@
#pragma once
#include "projectconfiguration.h"
+
+#include "buildconfiguration.h"
#include "projectexplorer_export.h"
#include <utils/optional.h>
@@ -38,6 +40,13 @@
#include <functional>
#include <memory>
+namespace Utils {
+class Environment;
+class FilePath;
+class MacroExpander;
+class OutputFormatter;
+} // Utils
+
namespace ProjectExplorer {
class BuildConfiguration;
@@ -56,9 +65,10 @@ class PROJECTEXPLORER_EXPORT BuildStep : public ProjectConfiguration
protected:
friend class BuildStepFactory;
- explicit BuildStep(BuildStepList *bsl, Core::Id id);
+ explicit BuildStep(BuildStepList *bsl, Utils::Id id);
public:
+ ~BuildStep() override;
virtual bool init() = 0;
void run();
void cancel();
@@ -77,6 +87,13 @@ public:
ProjectConfiguration *projectConfiguration() const;
BuildSystem *buildSystem() const;
+ Utils::Environment buildEnvironment() const;
+ Utils::FilePath buildDirectory() const;
+ BuildConfiguration::BuildType buildType() const;
+ Utils::MacroExpander *macroExpander() const;
+ QString fallbackWorkingDirectory() const;
+
+ virtual void setupOutputFormatter(Utils::OutputFormatter *formatter);
enum class OutputFormat {
Stdout, Stderr, // These are for forwarded output from external tools
@@ -97,15 +114,15 @@ public:
bool isImmutable() const { return m_immutable; }
void setImmutable(bool immutable) { m_immutable = immutable; }
- virtual QVariant data(Core::Id id) const;
+ virtual QVariant data(Utils::Id id) const;
void setSummaryUpdater(const std::function<QString ()> &summaryUpdater);
void addMacroExpander();
signals:
/// Adds a \p task to the Issues pane.
- /// Do note that for linking compile output with tasks, you should first emit the task
- /// and then emit the output. \p linkedOutput lines will be linked. And the last \p skipLines will
+ /// Do note that for linking compile output with tasks, you should first emit the output
+ /// and then emit the task. \p linkedOutput lines will be linked. And the last \p skipLines will
/// be skipped.
void addTask(const ProjectExplorer::Task &task, int linkedOutputLines = 0, int skipLines = 0);
@@ -151,7 +168,7 @@ public:
using BuildStepCreator = std::function<BuildStep *(BuildStepList *)>;
- Core::Id id;
+ Utils::Id id;
QString displayName;
Flags flags = Flags();
BuildStepCreator creator;
@@ -168,8 +185,8 @@ public:
static const QList<BuildStepFactory *> allBuildStepFactories();
BuildStepInfo stepInfo() const;
- Core::Id stepId() const;
- BuildStep *create(BuildStepList *parent, Core::Id id);
+ Utils::Id stepId() const;
+ BuildStep *create(BuildStepList *parent, Utils::Id id);
BuildStep *restore(BuildStepList *parent, const QVariantMap &map);
bool canHandle(BuildStepList *bsl) const;
@@ -178,19 +195,19 @@ protected:
using BuildStepCreator = std::function<BuildStep *(BuildStepList *)>;
template <class BuildStepType>
- void registerStep(Core::Id id)
+ void registerStep(Utils::Id id)
{
QTC_CHECK(!m_info.creator);
m_info.id = id;
m_info.creator = [id](BuildStepList *bsl) { return new BuildStepType(bsl, id); };
}
- void setSupportedStepList(Core::Id id);
- void setSupportedStepLists(const QList<Core::Id> &ids);
- void setSupportedConfiguration(Core::Id id);
- void setSupportedProjectType(Core::Id id);
- void setSupportedDeviceType(Core::Id id);
- void setSupportedDeviceTypes(const QList<Core::Id> &ids);
+ void setSupportedStepList(Utils::Id id);
+ void setSupportedStepLists(const QList<Utils::Id> &ids);
+ void setSupportedConfiguration(Utils::Id id);
+ void setSupportedProjectType(Utils::Id id);
+ void setSupportedDeviceType(Utils::Id id);
+ void setSupportedDeviceTypes(const QList<Utils::Id> &ids);
void setRepeatable(bool on) { m_isRepeatable = on; }
void setDisplayName(const QString &displayName);
void setFlags(BuildStepInfo::Flags flags);
@@ -198,10 +215,10 @@ protected:
private:
BuildStepInfo m_info;
- Core::Id m_supportedProjectType;
- QList<Core::Id> m_supportedDeviceTypes;
- QList<Core::Id> m_supportedStepLists;
- Core::Id m_supportedConfiguration;
+ Utils::Id m_supportedProjectType;
+ QList<Utils::Id> m_supportedDeviceTypes;
+ QList<Utils::Id> m_supportedStepLists;
+ Utils::Id m_supportedConfiguration;
bool m_isRepeatable = true;
};