CompilationDatabase: Allow to set custom build step and run command

In addition export the ProcessStep class from ProjectExplorer
not to duplicate the code.

Task-number: QTCREATORBUG-21727
Change-Id: I43d0c83b0338995fdb37ace940092c83ce2b6820
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
Ivan Donchevskii
2019-04-18 10:18:44 +02:00
parent e9cf8a4e3e
commit 7167656a8d
5 changed files with 97 additions and 8 deletions

View File

@@ -25,6 +25,7 @@
#pragma once
#include <projectexplorer/buildconfiguration.h>
#include <projectexplorer/project.h>
#include <projectexplorer/treescanner.h>
#include <texteditor/texteditor.h>
@@ -51,7 +52,7 @@ public:
explicit CompilationDatabaseProject(const Utils::FileName &filename);
~CompilationDatabaseProject() override;
bool needsConfiguration() const override { return false; }
bool needsBuildConfigurations() const override { return false; }
bool needsBuildConfigurations() const override { return true; }
private:
RestoreResult fromMap(const QVariantMap &map, QString *errorMessage) override;
@@ -77,5 +78,30 @@ public:
CompilationDatabaseEditorFactory();
};
class CompilationDatabaseBuildConfiguration : public ProjectExplorer::BuildConfiguration
{
Q_OBJECT
public:
CompilationDatabaseBuildConfiguration(ProjectExplorer::Target *target, Core::Id id);
ProjectExplorer::NamedWidget *createConfigWidget() override;
BuildType buildType() const override;
protected:
void initialize(const ProjectExplorer::BuildInfo &info) override;
};
class CompilationDatabaseBuildConfigurationFactory
: public ProjectExplorer::BuildConfigurationFactory
{
Q_OBJECT
public:
CompilationDatabaseBuildConfigurationFactory();
QList<ProjectExplorer::BuildInfo> availableBuilds(
const ProjectExplorer::Target *parent) const override;
QList<ProjectExplorer::BuildInfo> availableSetups(const ProjectExplorer::Kit *k,
const QString &projectPath) const override;
};
} // namespace Internal
} // namespace CompilationDatabaseProjectManager