diff options
author | hjk <hjk@qt.io> | 2020-01-09 15:06:30 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2020-01-09 15:42:21 +0000 |
commit | a971da3bfecb7624b23f09f4c31cfb79ff8b50f8 (patch) | |
tree | 3bbf5787201300c000f7cf1d8db15343846643db /src/plugins/qmakeprojectmanager | |
parent | ce69a9af83f4fb9e3074175f382c3b1da382d67f (diff) | |
download | qt-creator-a971da3bfecb7624b23f09f4c31cfb79ff8b50f8.tar.gz |
ProjectExplorer: Replace BuildConfigurationFactory::availableBuilds
... by a function object.
Change-Id: I9953ba6915c0177e7c4067d36dd755fc2ba5cf84
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/plugins/qmakeprojectmanager')
-rw-r--r-- | src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp | 51 | ||||
-rw-r--r-- | src/plugins/qmakeprojectmanager/qmakebuildconfiguration.h | 3 |
2 files changed, 25 insertions, 29 deletions
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; |