ProjectExplorer: Replace BuildConfigurationFactory::availableBuilds

... by a function object.

Change-Id: I9953ba6915c0177e7c4067d36dd755fc2ba5cf84
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2020-01-09 15:06:30 +01:00
parent ce69a9af83
commit a971da3bfe
19 changed files with 149 additions and 195 deletions

View File

@@ -422,39 +422,38 @@ QbsBuildConfigurationFactory::QbsBuildConfigurationFactory()
return version ? version->reportIssues(projectPath, buildDir)
: Tasks();
});
}
QList<BuildInfo> QbsBuildConfigurationFactory::availableBuilds(const Kit *k, const FilePath &projectPath, bool forSetup) const
{
QList<BuildInfo> result;
setBuildGenerator([this](const Kit *k, const FilePath &projectPath, bool forSetup) {
QList<BuildInfo> result;
if (forSetup) {
if (forSetup) {
BuildInfo info = createBuildInfo(k, BuildConfiguration::Debug);
//: The name of the debug build configuration created by default for a qbs project.
info.displayName = tr("Debug");
//: Non-ASCII characters in directory suffix may cause build issues.
info.buildDirectory
= defaultBuildDirectory(projectPath, k, tr("Debug", "Shadow build directory suffix"),
info.buildType);
result << info;
BuildInfo info = createBuildInfo(k, BuildConfiguration::Debug);
//: The name of the debug build configuration created by default for a qbs project.
info.displayName = tr("Debug");
//: Non-ASCII characters in directory suffix may cause build issues.
info.buildDirectory
= defaultBuildDirectory(projectPath, k, tr("Debug", "Shadow build directory suffix"),
info.buildType);
result << info;
info = createBuildInfo(k, BuildConfiguration::Release);
//: The name of the release build configuration created by default for a qbs project.
info.displayName = tr("Release");
//: Non-ASCII characters in directory suffix may cause build issues.
info.buildDirectory
= defaultBuildDirectory(projectPath, k, tr("Release", "Shadow build directory suffix"),
info.buildType);
result << info;
info = createBuildInfo(k, BuildConfiguration::Release);
//: The name of the release build configuration created by default for a qbs project.
info.displayName = tr("Release");
//: Non-ASCII characters in directory suffix may cause build issues.
info.buildDirectory
= defaultBuildDirectory(projectPath, k, tr("Release", "Shadow build directory suffix"),
info.buildType);
result << info;
} else {
} else {
result << createBuildInfo(k, BuildConfiguration::Debug);
result << createBuildInfo(k, BuildConfiguration::Debug);
}
}
return result;
return result;
});
}
BuildInfo QbsBuildConfigurationFactory::createBuildInfo(const Kit *k,

View File

@@ -102,9 +102,6 @@ class QbsBuildConfigurationFactory : public ProjectExplorer::BuildConfigurationF
public:
QbsBuildConfigurationFactory();
QList<ProjectExplorer::BuildInfo> availableBuilds
(const ProjectExplorer::Kit *k, const Utils::FilePath &projectPath, bool forSetup) const override;
private:
ProjectExplorer::BuildInfo createBuildInfo(const ProjectExplorer::Kit *k,
ProjectExplorer::BuildConfiguration::BuildType type) const;