aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2020-01-09 15:06:30 +0100
committerhjk <hjk@qt.io>2020-01-09 15:42:21 +0000
commita971da3bfecb7624b23f09f4c31cfb79ff8b50f8 (patch)
tree3bbf5787201300c000f7cf1d8db15343846643db /src/plugins
parentce69a9af83f4fb9e3074175f382c3b1da382d67f (diff)
ProjectExplorer: Replace BuildConfigurationFactory::availableBuilds
... by a function object. Change-Id: I9953ba6915c0177e7c4067d36dd755fc2ba5cf84 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp25
-rw-r--r--src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.h5
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp39
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h4
-rw-r--r--src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp22
-rw-r--r--src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.h4
-rw-r--r--src/plugins/genericprojectmanager/genericbuildconfiguration.cpp24
-rw-r--r--src/plugins/genericprojectmanager/genericbuildconfiguration.h5
-rw-r--r--src/plugins/nim/project/nimblebuildconfiguration.cpp35
-rw-r--r--src/plugins/nim/project/nimblebuildconfiguration.h5
-rw-r--r--src/plugins/nim/project/nimbuildconfiguration.cpp41
-rw-r--r--src/plugins/nim/project/nimbuildconfiguration.h5
-rw-r--r--src/plugins/projectexplorer/buildconfiguration.cpp11
-rw-r--r--src/plugins/projectexplorer/buildconfiguration.h6
-rw-r--r--src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp49
-rw-r--r--src/plugins/qbsprojectmanager/qbsbuildconfiguration.h3
-rw-r--r--src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp51
-rw-r--r--src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h3
-rw-r--r--src/plugins/qmlprofiler/tests/qmlprofilerdetailsrewriter_test.cpp7
19 files changed, 149 insertions, 195 deletions
diff --git a/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp b/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp
index 6de5139f2f..eb9b7ad930 100644
--- a/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp
+++ b/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.cpp
@@ -75,20 +75,19 @@ AutotoolsBuildConfigurationFactory::AutotoolsBuildConfigurationFactory()
setSupportedProjectType(Constants::AUTOTOOLS_PROJECT_ID);
setSupportedProjectMimeTypeName(Constants::MAKEFILE_MIMETYPE);
-}
-QList<BuildInfo> AutotoolsBuildConfigurationFactory::availableBuilds
- (const Kit *k, const FilePath &projectPath, bool forSetup) const
-{
- BuildInfo info(this);
- info.typeName = tr("Build");
- info.buildDirectory = forSetup ? FilePath::fromString(projectPath.toFileInfo().absolutePath()) : projectPath;
- info.kitId = k->id();
- if (forSetup) {
- //: The name of the build configuration created by default for a autotools project.
- info.displayName = tr("Default");
- }
- return {info};
+ setBuildGenerator([this](const Kit *k, const FilePath &projectPath, bool forSetup) {
+ BuildInfo info(this);
+ info.typeName = tr("Build");
+ info.buildDirectory = forSetup
+ ? FilePath::fromString(projectPath.toFileInfo().absolutePath()) : projectPath;
+ info.kitId = k->id();
+ if (forSetup) {
+ //: The name of the build configuration created by default for a autotools project.
+ info.displayName = tr("Default");
+ }
+ return QList<BuildInfo>{info};
+ });
}
} // Internal
diff --git a/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.h b/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.h
index ca74485919..0a9671e8b8 100644
--- a/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.h
+++ b/src/plugins/autotoolsprojectmanager/autotoolsbuildconfiguration.h
@@ -46,11 +46,6 @@ class AutotoolsBuildConfigurationFactory : public ProjectExplorer::BuildConfigur
public:
AutotoolsBuildConfigurationFactory();
-
-private:
- QList<ProjectExplorer::BuildInfo> availableBuilds(const ProjectExplorer::Kit *k,
- const Utils::FilePath &projectPath,
- bool forSetup) const override;
};
} // namespace Internal
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
index d2ff275fa9..4865485b1e 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
@@ -408,6 +408,24 @@ CMakeBuildConfigurationFactory::CMakeBuildConfigurationFactory()
setSupportedProjectType(CMakeProjectManager::Constants::CMAKEPROJECT_ID);
setSupportedProjectMimeTypeName(Constants::CMAKEPROJECTMIMETYPE);
+
+ setBuildGenerator([this](const Kit *k, const FilePath &projectPath, bool forSetup) {
+ QList<BuildInfo> result;
+
+ FilePath path = forSetup ? Project::projectDirectory(projectPath) : projectPath;
+
+ for (int type = BuildTypeDebug; type != BuildTypeLast; ++type) {
+ BuildInfo info = createBuildInfo(k, path.toString(), BuildType(type));
+ if (forSetup) {
+ info.buildDirectory = CMakeBuildConfiguration::shadowBuildDirectory(projectPath,
+ k,
+ info.typeName,
+ info.buildType);
+ }
+ result << info;
+ }
+ return result;
+ });
}
CMakeBuildConfigurationFactory::BuildType CMakeBuildConfigurationFactory::buildTypeFromByteArray(
@@ -439,27 +457,6 @@ BuildConfiguration::BuildType CMakeBuildConfigurationFactory::cmakeBuildTypeToBu
return BuildConfiguration::Unknown;
}
-QList<BuildInfo> CMakeBuildConfigurationFactory::availableBuilds(const Kit *k,
- const FilePath &projectPath,
- bool forSetup) const
-{
- QList<BuildInfo> result;
-
- FilePath path = forSetup ? Project::projectDirectory(projectPath) : projectPath;
-
- for (int type = BuildTypeDebug; type != BuildTypeLast; ++type) {
- BuildInfo info = createBuildInfo(k, path.toString(), BuildType(type));
- if (forSetup) {
- info.buildDirectory = CMakeBuildConfiguration::shadowBuildDirectory(projectPath,
- k,
- info.typeName,
- info.buildType);
- }
- result << info;
- }
- return result;
-}
-
BuildInfo CMakeBuildConfigurationFactory::createBuildInfo(const Kit *k,
const QString &,
BuildType buildType) const
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h
index f2394f8e39..b02204af49 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h
+++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h
@@ -125,10 +125,6 @@ public:
static BuildType buildTypeFromByteArray(const QByteArray &in);
static ProjectExplorer::BuildConfiguration::BuildType cmakeBuildTypeToBuildType(const BuildType &in);
- QList<ProjectExplorer::BuildInfo> availableBuilds(const ProjectExplorer::Kit *k,
- const Utils::FilePath &projectPath,
- bool forSetup) const override;
-
private:
ProjectExplorer::BuildInfo createBuildInfo(const ProjectExplorer::Kit *k,
const QString &sourceDir,
diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp
index 5f280b19f7..a1714ef8a6 100644
--- a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp
+++ b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp
@@ -538,19 +538,17 @@ CompilationDatabaseBuildConfigurationFactory::CompilationDatabaseBuildConfigurat
setSupportedProjectType(Constants::COMPILATIONDATABASEPROJECT_ID);
setSupportedProjectMimeTypeName(Constants::COMPILATIONDATABASEMIMETYPE);
-}
-QList<BuildInfo> CompilationDatabaseBuildConfigurationFactory::availableBuilds
- (const Kit *kit, const FilePath &projectPath, bool) const
-{
- const QString name = tr("Release");
- ProjectExplorer::BuildInfo info(this);
- info.typeName = name;
- info.displayName = name;
- info.buildType = BuildConfiguration::Release;
- info.buildDirectory = projectPath.parentDir();
- info.kitId = kit->id();
- return {info};
+ setBuildGenerator([this](const Kit *kit, const FilePath &projectPath, bool) {
+ const QString name = tr("Release");
+ ProjectExplorer::BuildInfo info(this);
+ info.typeName = name;
+ info.displayName = name;
+ info.buildType = BuildConfiguration::Release;
+ info.buildDirectory = projectPath.parentDir();
+ info.kitId = kit->id();
+ return QList<BuildInfo>{info};
+ });
}
} // namespace Internal
diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.h b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.h
index 463126a5a3..778cb98b3b 100644
--- a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.h
+++ b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.h
@@ -100,10 +100,6 @@ class CompilationDatabaseBuildConfigurationFactory
Q_OBJECT
public:
CompilationDatabaseBuildConfigurationFactory();
-
- QList<ProjectExplorer::BuildInfo> availableBuilds(const ProjectExplorer::Kit *k,
- const Utils::FilePath &projectPath,
- bool forSetup) const override;
};
} // namespace Internal
diff --git a/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp b/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp
index 6b549c313e..3c04417c77 100644
--- a/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp
+++ b/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp
@@ -76,22 +76,20 @@ GenericBuildConfigurationFactory::GenericBuildConfigurationFactory()
setSupportedProjectType(Constants::GENERICPROJECT_ID);
setSupportedProjectMimeTypeName(Constants::GENERICMIMETYPE);
-}
-QList<BuildInfo> GenericBuildConfigurationFactory::availableBuilds
- (const Kit *k, const FilePath &projectPath, bool forSetup) const
-{
- BuildInfo info(this);
- info.typeName = tr("Build");
- info.buildDirectory = forSetup ? Project::projectDirectory(projectPath) : projectPath;
- info.kitId = k->id();
+ setBuildGenerator([this](const Kit *k, const FilePath &projectPath, bool forSetup) {
+ BuildInfo info(this);
+ info.typeName = tr("Build");
+ info.buildDirectory = forSetup ? Project::projectDirectory(projectPath) : projectPath;
+ info.kitId = k->id();
- if (forSetup) {
- //: The name of the build configuration created by default for a generic project.
- info.displayName = tr("Default");
- }
+ if (forSetup) {
+ //: The name of the build configuration created by default for a generic project.
+ info.displayName = tr("Default");
+ }
- return {info};
+ return QList<BuildInfo>{info};
+ });
}
void GenericBuildConfiguration::addToEnvironment(Utils::Environment &env) const
diff --git a/src/plugins/genericprojectmanager/genericbuildconfiguration.h b/src/plugins/genericprojectmanager/genericbuildconfiguration.h
index 9416dd1414..fbb3970128 100644
--- a/src/plugins/genericprojectmanager/genericbuildconfiguration.h
+++ b/src/plugins/genericprojectmanager/genericbuildconfiguration.h
@@ -46,11 +46,6 @@ class GenericBuildConfigurationFactory : public ProjectExplorer::BuildConfigurat
public:
GenericBuildConfigurationFactory();
-
-private:
- QList<ProjectExplorer::BuildInfo> availableBuilds(const ProjectExplorer::Kit *k,
- const Utils::FilePath &projectPath,
- bool forSetup) const override;
};
} // namespace Internal
diff --git a/src/plugins/nim/project/nimblebuildconfiguration.cpp b/src/plugins/nim/project/nimblebuildconfiguration.cpp
index 19f4563ccc..4035589f14 100644
--- a/src/plugins/nim/project/nimblebuildconfiguration.cpp
+++ b/src/plugins/nim/project/nimblebuildconfiguration.cpp
@@ -85,25 +85,22 @@ NimbleBuildConfigurationFactory::NimbleBuildConfigurationFactory()
registerBuildConfiguration<NimbleBuildConfiguration>(Constants::C_NIMBLEBUILDCONFIGURATION_ID);
setSupportedProjectType(Constants::C_NIMBLEPROJECT_ID);
setSupportedProjectMimeTypeName(Constants::C_NIMBLE_MIMETYPE);
-}
-
-QList<BuildInfo> NimbleBuildConfigurationFactory::availableBuilds(const Kit *k, const Utils::FilePath &projectPath, bool forSetup) const
-{
- static const QList<BuildConfiguration::BuildType> configurations = {BuildConfiguration::Debug, BuildConfiguration::Release};
- return Utils::transform(configurations, [&](BuildConfiguration::BuildType buildType){
- BuildInfo info(this);
- info.buildType = buildType;
- info.kitId = k->id();
-
- if (buildType == BuildConfiguration::Debug)
- info.typeName = tr("Debug");
- else if (buildType == BuildConfiguration::Release)
- info.typeName = tr("Release");
- if (forSetup) {
- info.displayName = info.typeName;
- info.buildDirectory = projectPath.parentDir();
- }
- return info;
+ setBuildGenerator([this](const Kit *k, const FilePath &projectPath, bool forSetup) {
+ const auto oneBuild = [&](BuildConfiguration::BuildType buildType, const QString &typeName) {
+ BuildInfo info(this);
+ info.buildType = buildType;
+ info.kitId = k->id();
+ info.typeName = typeName;
+ if (forSetup) {
+ info.displayName = info.typeName;
+ info.buildDirectory = projectPath.parentDir();
+ }
+ return info;
+ };
+ return QList<BuildInfo>{
+ oneBuild(BuildConfiguration::Debug, tr("Debug")),
+ oneBuild(BuildConfiguration::Release, tr("Release"))
+ };
});
}
diff --git a/src/plugins/nim/project/nimblebuildconfiguration.h b/src/plugins/nim/project/nimblebuildconfiguration.h
index 8990842615..707e5cef21 100644
--- a/src/plugins/nim/project/nimblebuildconfiguration.h
+++ b/src/plugins/nim/project/nimblebuildconfiguration.h
@@ -54,11 +54,6 @@ class NimbleBuildConfigurationFactory : public ProjectExplorer::BuildConfigurati
public:
NimbleBuildConfigurationFactory();
-
-private:
- QList<ProjectExplorer::BuildInfo> availableBuilds(const ProjectExplorer::Kit *k,
- const Utils::FilePath &projectPath,
- bool forSetup) const override;
};
}
diff --git a/src/plugins/nim/project/nimbuildconfiguration.cpp b/src/plugins/nim/project/nimbuildconfiguration.cpp
index d0abc3f3db..82133cb1a0 100644
--- a/src/plugins/nim/project/nimbuildconfiguration.cpp
+++ b/src/plugins/nim/project/nimbuildconfiguration.cpp
@@ -134,31 +134,24 @@ NimBuildConfigurationFactory::NimBuildConfigurationFactory()
registerBuildConfiguration<NimBuildConfiguration>(Constants::C_NIMBUILDCONFIGURATION_ID);
setSupportedProjectType(Constants::C_NIMPROJECT_ID);
setSupportedProjectMimeTypeName(Constants::C_NIM_PROJECT_MIMETYPE);
-}
-QList<BuildInfo> NimBuildConfigurationFactory::availableBuilds
- (const Kit *k, const FilePath &projectPath, bool forSetup) const
-{
- QList<BuildInfo> result;
- for (auto buildType : {BuildConfiguration::Debug, BuildConfiguration::Release}) {
- BuildInfo info(this);
- info.buildType = buildType;
- info.kitId = k->id();
-
- if (buildType == BuildConfiguration::Debug)
- info.typeName = tr("Debug");
- else if (buildType == BuildConfiguration::Profile)
- info.typeName = tr("Profile");
- else if (buildType == BuildConfiguration::Release)
- info.typeName = tr("Release");
-
- if (forSetup) {
- info.displayName = info.typeName;
- info.buildDirectory = defaultBuildDirectory(k, projectPath, info.typeName, buildType);
- }
- result.push_back(info);
- }
- return result;
+ setBuildGenerator([this](const Kit *k, const FilePath &projectPath, bool forSetup) {
+ const auto oneBuild = [&](BuildConfiguration::BuildType buildType, const QString &typeName) {
+ BuildInfo info(this);
+ info.buildType = buildType;
+ info.kitId = k->id();
+ info.typeName = typeName;
+ if (forSetup) {
+ info.displayName = info.typeName;
+ info.buildDirectory = defaultBuildDirectory(k, projectPath, info.typeName, buildType);
+ }
+ return info;
+ };
+ return QList<BuildInfo>{
+ oneBuild(BuildConfiguration::Debug, tr("Debug")),
+ oneBuild(BuildConfiguration::Release, tr("Release"))
+ };
+ });
}
} // namespace Nim
diff --git a/src/plugins/nim/project/nimbuildconfiguration.h b/src/plugins/nim/project/nimbuildconfiguration.h
index a5c7cd23f7..54fd0727ce 100644
--- a/src/plugins/nim/project/nimbuildconfiguration.h
+++ b/src/plugins/nim/project/nimbuildconfiguration.h
@@ -58,11 +58,6 @@ class NimBuildConfigurationFactory : public ProjectExplorer::BuildConfigurationF
public:
NimBuildConfigurationFactory();
-
-private:
- QList<ProjectExplorer::BuildInfo> availableBuilds(const ProjectExplorer::Kit *k,
- const Utils::FilePath &projectPath,
- bool forSetup) const override;
};
}
diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp
index 6e50196ce2..35f2e908c4 100644
--- a/src/plugins/projectexplorer/buildconfiguration.cpp
+++ b/src/plugins/projectexplorer/buildconfiguration.cpp
@@ -508,13 +508,15 @@ const Tasks BuildConfigurationFactory::reportIssues(ProjectExplorer::Kit *kit, c
const QList<BuildInfo> BuildConfigurationFactory::allAvailableBuilds(const Target *parent) const
{
- return availableBuilds(parent->kit(), parent->project()->projectFilePath(), false);
+ QTC_ASSERT(m_buildGenerator, return {});
+ return m_buildGenerator(parent->kit(), parent->project()->projectFilePath(), false);
}
const QList<BuildInfo>
BuildConfigurationFactory::allAvailableSetups(const Kit *k, const FilePath &projectPath) const
{
- return availableBuilds(k, projectPath, /* forSetup = */ true);
+ QTC_ASSERT(m_buildGenerator, return {});
+ return m_buildGenerator(k, projectPath, /* forSetup = */ true);
}
bool BuildConfigurationFactory::supportsTargetDeviceType(Core::Id id) const
@@ -577,6 +579,11 @@ bool BuildConfigurationFactory::canHandle(const Target *target) const
return true;
}
+void BuildConfigurationFactory::setBuildGenerator(const BuildGenerator &buildGenerator)
+{
+ m_buildGenerator = buildGenerator;
+}
+
void BuildConfigurationFactory::setIssueReporter(const IssueReporter &issueReporter)
{
m_issueReporter = issueReporter;
diff --git a/src/plugins/projectexplorer/buildconfiguration.h b/src/plugins/projectexplorer/buildconfiguration.h
index f940be1a77..95b53b11f6 100644
--- a/src/plugins/projectexplorer/buildconfiguration.h
+++ b/src/plugins/projectexplorer/buildconfiguration.h
@@ -163,8 +163,9 @@ public:
const QString &projectPath, const QString &buildDir) const;
protected:
- virtual QList<BuildInfo>
- availableBuilds(const Kit *k, const Utils::FilePath &projectPath, bool forSetup) const = 0;
+ using BuildGenerator
+ = std::function<QList<BuildInfo>(const Kit *, const Utils::FilePath &, bool)>;
+ void setBuildGenerator(const BuildGenerator &buildGenerator);
bool supportsTargetDeviceType(Core::Id id) const;
void setSupportedProjectType(Core::Id id);
@@ -191,6 +192,7 @@ private:
QList<Core::Id> m_supportedTargetDeviceTypes;
QString m_supportedProjectMimeTypeName;
IssueReporter m_issueReporter;
+ BuildGenerator m_buildGenerator;
};
} // namespace ProjectExplorer
diff --git a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp
index 23dc20c489..0fedc5e88d 100644
--- a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp
+++ b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp
@@ -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,
diff --git a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h
index 94507080d6..cd303ab52e 100644
--- a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h
+++ b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h
@@ -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;
diff --git a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp
index 286a6c2d5f..fdf0baf2aa 100644
--- a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp
+++ b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp
@@ -711,6 +711,31 @@ QmakeBuildConfigurationFactory::QmakeBuildConfigurationFactory()
}
return issues;
});
+
+ setBuildGenerator([this](const Kit *k, const FilePath &projectPath, bool forSetup) {
+ QList<BuildInfo> result;
+
+ BaseQtVersion *qtVersion = QtKitAspect::qtVersion(k);
+
+ if (forSetup && (!qtVersion || !qtVersion->isValid()))
+ return result;
+
+ const auto addBuild = [&](BuildConfiguration::BuildType buildType) {
+ BuildInfo info = createBuildInfo(k, projectPath, buildType);
+ if (!forSetup) {
+ info.displayName.clear(); // ask for a name
+ info.buildDirectory.clear(); // This depends on the displayName
+ }
+ result << info;
+ };
+
+ addBuild(BuildConfiguration::Debug);
+ addBuild(BuildConfiguration::Release);
+ if (qtVersion && qtVersion->qtVersion().majorVersion > 4)
+ addBuild(BuildConfiguration::Profile);
+
+ return result;
+ });
}
BuildInfo QmakeBuildConfigurationFactory::createBuildInfo(const Kit *k,
@@ -779,32 +804,6 @@ BuildInfo QmakeBuildConfigurationFactory::createBuildInfo(const Kit *k,
return info;
}
-QList<BuildInfo> QmakeBuildConfigurationFactory::availableBuilds(const Kit *k, const FilePath &projectPath, bool forSetup) const
-{
- QList<BuildInfo> result;
-
- BaseQtVersion *qtVersion = QtKitAspect::qtVersion(k);
-
- if (forSetup && (!qtVersion || !qtVersion->isValid()))
- return {};
-
- const auto addBuild = [&](BuildConfiguration::BuildType buildType) {
- BuildInfo info = createBuildInfo(k, projectPath, buildType);
- if (!forSetup) {
- info.displayName.clear(); // ask for a name
- info.buildDirectory.clear(); // This depends on the displayName
- }
- result << info;
- };
-
- addBuild(BuildConfiguration::Debug);
- addBuild(BuildConfiguration::Release);
- if (qtVersion && qtVersion->qtVersion().majorVersion > 4)
- addBuild(BuildConfiguration::Profile);
-
- return result;
-}
-
BuildConfiguration::BuildType QmakeBuildConfiguration::buildType() const
{
if (qmakeBuildConfiguration() & BaseQtVersion::DebugBuild)
diff --git a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h
index e003d86f7e..28cabf1693 100644
--- a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h
+++ b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h
@@ -158,9 +158,6 @@ class QMAKEPROJECTMANAGER_EXPORT QmakeBuildConfigurationFactory : public Project
public:
QmakeBuildConfigurationFactory();
- QList<ProjectExplorer::BuildInfo> availableBuilds(const ProjectExplorer::Kit *k,
- const Utils::FilePath &projectPath,
- bool forSetup) const override;
private:
ProjectExplorer::BuildInfo createBuildInfo(const ProjectExplorer::Kit *k, const Utils::FilePath &projectPath,
ProjectExplorer::BuildConfiguration::BuildType type) const;
diff --git a/src/plugins/qmlprofiler/tests/qmlprofilerdetailsrewriter_test.cpp b/src/plugins/qmlprofiler/tests/qmlprofilerdetailsrewriter_test.cpp
index 50be99a19d..418cc4641e 100644
--- a/src/plugins/qmlprofiler/tests/qmlprofilerdetailsrewriter_test.cpp
+++ b/src/plugins/qmlprofiler/tests/qmlprofilerdetailsrewriter_test.cpp
@@ -68,13 +68,12 @@ public:
bool needsConfiguration() const final { return false; }
};
-class DummyBuildConfigurationFactory : public ProjectExplorer::BuildConfigurationFactory
+class DummyBuildConfigurationFactory : public BuildConfigurationFactory
{
public:
- QList<ProjectExplorer::BuildInfo> availableBuilds(const ProjectExplorer::Kit *,
- const FilePath &, bool) const final
+ DummyBuildConfigurationFactory()
{
- return {};
+ setBuildGenerator([](const Kit *, const FilePath &, bool) { return QList<BuildInfo>{}; });
}
};