ProjectExplorer: Give build systems a name

... and make it accessible through a variable.

Fixes: QTCREATORBUG-26147
Change-Id: I0601c09a74360b91fe8421876207a8f4ae9d75b6
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Christian Kandeler
2021-09-09 11:28:28 +02:00
parent ecfe6b7fc1
commit 939cc5af21
14 changed files with 18 additions and 2 deletions

View File

@@ -44,6 +44,7 @@ public:
private: private:
void triggerParsing() final; void triggerParsing() final;
QString name() const final { return QLatin1String("autotools"); }
/** /**
* Is invoked when the makefile parsing by m_makefileParserThread has * Is invoked when the makefile parsing by m_makefileParserThread has

View File

@@ -67,6 +67,7 @@ public:
const Utils::FilePaths &filePaths, Utils::FilePaths *) final; const Utils::FilePaths &filePaths, Utils::FilePaths *) final;
Utils::FilePaths filesGeneratedFrom(const Utils::FilePath &sourceFile) const final; Utils::FilePaths filesGeneratedFrom(const Utils::FilePath &sourceFile) const final;
QString name() const final { return QLatin1String("cmake"); }
// Actions: // Actions:
void runCMake(); void runCMake();

View File

@@ -64,6 +64,7 @@ public:
~CompilationDatabaseBuildSystem(); ~CompilationDatabaseBuildSystem();
void triggerParsing() final; void triggerParsing() final;
QString name() const final { return QLatin1String("compilationdb"); }
void reparseProject(); void reparseProject();
void updateDeploymentData(); void updateDeploymentData();

View File

@@ -138,6 +138,7 @@ public:
RemovedFilesFromProject removeFiles(Node *, const FilePaths &filePaths, FilePaths *) final; RemovedFilesFromProject removeFiles(Node *, const FilePaths &filePaths, FilePaths *) final;
bool renameFile(Node *, const FilePath &oldFilePath, const FilePath &newFilePath) final; bool renameFile(Node *, const FilePath &oldFilePath, const FilePath &newFilePath) final;
bool addFiles(Node *, const FilePaths &filePaths, FilePaths *) final; bool addFiles(Node *, const FilePaths &filePaths, FilePaths *) final;
QString name() const final { return QLatin1String("generic"); }
FilePath filesFilePath() const { return ::FilePath::fromString(m_filesFileName); } FilePath filesFilePath() const { return ::FilePath::fromString(m_filesFileName); }

View File

@@ -48,6 +48,7 @@ public:
~MesonBuildSystem() final; ~MesonBuildSystem() final;
void triggerParsing() final; void triggerParsing() final;
QString name() const final { return QLatin1String("meson"); }
inline const BuildOptionsList &buildOptions() const { return m_parser.buildOptions(); } inline const BuildOptionsList &buildOptions() const { return m_parser.buildOptions(); }
inline const TargetsList &targets() const { return m_parser.targets(); } inline const TargetsList &targets() const { return m_parser.targets(); }

View File

@@ -82,7 +82,7 @@ private:
bool deleteFiles(ProjectExplorer::Node *, const Utils::FilePaths &) override; bool deleteFiles(ProjectExplorer::Node *, const Utils::FilePaths &) override;
bool renameFile(ProjectExplorer::Node *, bool renameFile(ProjectExplorer::Node *,
const Utils::FilePath &oldFilePath, const Utils::FilePath &newFilePath) override; const Utils::FilePath &oldFilePath, const Utils::FilePath &newFilePath) override;
QString name() const final { return QLatin1String("mimble"); }
void triggerParsing() final; void triggerParsing() final;
std::vector<NimbleTask> m_tasks; std::vector<NimbleTask> m_tasks;

View File

@@ -87,6 +87,7 @@ public:
bool deleteFiles(ProjectExplorer::Node *, const Utils::FilePaths &) final; bool deleteFiles(ProjectExplorer::Node *, const Utils::FilePaths &) final;
bool renameFile(ProjectExplorer::Node *, bool renameFile(ProjectExplorer::Node *,
const Utils::FilePath &oldFilePath, const Utils::FilePath &newFilePath) final; const Utils::FilePath &oldFilePath, const Utils::FilePath &newFilePath) final;
QString name() const final { return QLatin1String("nim"); }
void triggerParsing() override; void triggerParsing() override;

View File

@@ -101,6 +101,7 @@ public:
const Utils::FilePath &newFilePath); const Utils::FilePath &newFilePath);
virtual bool addDependencies(Node *context, const QStringList &dependencies); virtual bool addDependencies(Node *context, const QStringList &dependencies);
virtual bool supportsAction(Node *context, ProjectAction action, const Node *node) const; virtual bool supportsAction(Node *context, ProjectAction action, const Node *node) const;
virtual QString name() const = 0;
virtual Utils::FilePaths filesGeneratedFrom(const Utils::FilePath &sourceFile) const; virtual Utils::FilePaths filesGeneratedFrom(const Utils::FilePath &sourceFile) const;
virtual QVariant additionalData(Utils::Id id) const; virtual QVariant additionalData(Utils::Id id) const;

View File

@@ -1100,6 +1100,7 @@ public:
using BuildSystem::BuildSystem; using BuildSystem::BuildSystem;
void triggerParsing() final {} void triggerParsing() final {}
QString name() const final { return QLatin1String("test"); }
}; };
class TestProject : public Project class TestProject : public Project

View File

@@ -161,6 +161,11 @@ Target::Target(Project *project, Kit *k, _constructor_tag) :
d->m_macroExpander.registerVariable("sourceDir", tr("Source directory"), d->m_macroExpander.registerVariable("sourceDir", tr("Source directory"),
[project] { return project->projectDirectory().toUserOutput(); }); [project] { return project->projectDirectory().toUserOutput(); });
d->m_macroExpander.registerVariable("BuildSystem:Name", tr("Build system"), [this] {
if (const BuildSystem * const bs = buildSystem())
return bs->name();
return QString();
});
// TODO: Remove in ~4.16. // TODO: Remove in ~4.16.
d->m_macroExpander.registerVariable(Constants::VAR_CURRENTPROJECT_NAME, d->m_macroExpander.registerVariable(Constants::VAR_CURRENTPROJECT_NAME,

View File

@@ -69,6 +69,7 @@ public:
bool renameFile(Node *, bool renameFile(Node *,
const Utils::FilePath &oldFilePath, const Utils::FilePath &oldFilePath,
const Utils::FilePath &newFilePath) override; const Utils::FilePath &newFilePath) override;
QString name() const override { return QLatin1String("python"); }
bool saveRawFileList(const QStringList &rawFileList); bool saveRawFileList(const QStringList &rawFileList);
bool saveRawList(const QStringList &rawList, const QString &fileName); bool saveRawList(const QStringList &rawList, const QString &fileName);

View File

@@ -91,9 +91,9 @@ public:
Utils::FilePaths *notRemoved = nullptr) final; Utils::FilePaths *notRemoved = nullptr) final;
bool renameFile(ProjectExplorer::Node *context, bool renameFile(ProjectExplorer::Node *context,
const Utils::FilePath &oldFilePath, const Utils::FilePath &newFilePath) final; const Utils::FilePath &oldFilePath, const Utils::FilePath &newFilePath) final;
Utils::FilePaths filesGeneratedFrom(const Utils::FilePath &sourceFile) const final; Utils::FilePaths filesGeneratedFrom(const Utils::FilePath &sourceFile) const final;
QVariant additionalData(Utils::Id id) const final; QVariant additionalData(Utils::Id id) const final;
QString name() const final { return QLatin1String("qbs"); }
bool isProjectEditable() const; bool isProjectEditable() const;
bool addFilesToProduct(const Utils::FilePaths &filePaths, bool addFilesToProduct(const Utils::FilePaths &filePaths,

View File

@@ -105,6 +105,7 @@ public:
const Utils::FilePath &newFilePath) override; const Utils::FilePath &newFilePath) override;
bool addDependencies(ProjectExplorer::Node *context, bool addDependencies(ProjectExplorer::Node *context,
const QStringList &dependencies) override; const QStringList &dependencies) override;
QString name() const final { return QLatin1String("qmake"); }
void triggerParsing() final; void triggerParsing() final;
Utils::FilePaths filesGeneratedFrom(const Utils::FilePath &file) const final; Utils::FilePaths filesGeneratedFrom(const Utils::FilePath &file) const final;

View File

@@ -59,6 +59,7 @@ public:
const Utils::FilePaths &filePaths) override; const Utils::FilePaths &filePaths) override;
bool renameFile(ProjectExplorer::Node *context, bool renameFile(ProjectExplorer::Node *context,
const Utils::FilePath &oldFilePath, const Utils::FilePath &newFilePath) override; const Utils::FilePath &oldFilePath, const Utils::FilePath &newFilePath) override;
QString name() const override { return QLatin1String("qml"); }
QmlProject *qmlProject() const; QmlProject *qmlProject() const;