diff options
author | Filippo Cucchetto <filippocucchetto@gmail.com> | 2018-12-15 12:17:26 +0100 |
---|---|---|
committer | Filippo Cucchetto <filippocucchetto@gmail.com> | 2018-12-18 12:04:33 +0000 |
commit | 612410e1f92ff9783fa668f21d48776cc81675b4 (patch) | |
tree | 070b78421164d5a274f67659ce50305f77d1ea08 /src/plugins/nim | |
parent | 8770d83fc8bd71691e7cbb5114a1c0b4b8cb4ed8 (diff) |
Nim: Add Debug and Release configs in available builds configurations
This allows the user to select a Release or Debug build type
from the "Add" button in the project build configuration page.
Change-Id: Id47bf25cdaf3fd7e7d3f0ec1449c7c2bb9961baa
Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/plugins/nim')
-rw-r--r-- | src/plugins/nim/project/nimbuildconfiguration.cpp | 56 | ||||
-rw-r--r-- | src/plugins/nim/project/nimbuildconfiguration.h | 3 |
2 files changed, 34 insertions, 25 deletions
diff --git a/src/plugins/nim/project/nimbuildconfiguration.cpp b/src/plugins/nim/project/nimbuildconfiguration.cpp index d5ba778b879..3aa94c6b177 100644 --- a/src/plugins/nim/project/nimbuildconfiguration.cpp +++ b/src/plugins/nim/project/nimbuildconfiguration.cpp @@ -183,37 +183,45 @@ NimBuildConfigurationFactory::NimBuildConfigurationFactory() QList<BuildInfo *> NimBuildConfigurationFactory::availableBuilds(const Target *parent) const { - // Retrieve the project path - auto project = qobject_cast<NimProject *>(parent->project()); - QTC_ASSERT(project, return {}); - - // Create the build info - BuildInfo *info = createBuildInfo(parent->kit(), project->projectFilePath().toString(), - BuildConfiguration::Debug); - - info->displayName.clear(); // ask for a name - info->buildDirectory.clear(); // This depends on the displayName - - return {info}; + QList<BuildInfo *> result; + for (auto buildType : {BuildConfiguration::Debug, BuildConfiguration::Release}) + result.push_back(createBuildInfo(parent->kit(), buildType)); + return result; } QList<BuildInfo *> NimBuildConfigurationFactory::availableSetups(const Kit *k, const QString &projectPath) const { - BuildInfo *debug = createBuildInfo(k, projectPath, BuildConfiguration::Debug); - BuildInfo *release = createBuildInfo(k, projectPath, BuildConfiguration::Release); - return {debug, release}; + QList<BuildInfo *> result; + for (auto buildType : {BuildConfiguration::Debug, BuildConfiguration::Release}) { + BuildInfo *info = createBuildInfo(k, buildType); + info->displayName = info->typeName; + info->buildDirectory = defaultBuildDirectory(k, projectPath, info->typeName, buildType); + result.push_back(info); + } + return result; } -BuildInfo *NimBuildConfigurationFactory::createBuildInfo(const Kit *k, const QString &projectFilePath, - BuildConfiguration::BuildType buildType) const +BuildInfo *NimBuildConfigurationFactory::createBuildInfo(const Kit *k, BuildConfiguration::BuildType buildType) const { - auto result = new BuildInfo(this); - result->buildType = buildType; - result->displayName = BuildConfiguration::buildTypeName(buildType); - result->buildDirectory = defaultBuildDirectory(k, projectFilePath, result->displayName, buildType); - result->kitId = k->id(); - result->typeName = tr("Build"); - return result; + auto info = new BuildInfo(this); + info->buildType = buildType; + info->kitId = k->id(); + info->typeName = displayName(buildType); + return info; +} + +QString NimBuildConfigurationFactory::displayName(BuildConfiguration::BuildType buildType) const +{ + switch (buildType) { + case ProjectExplorer::BuildConfiguration::Debug: + return tr("Debug"); + case ProjectExplorer::BuildConfiguration::Profile: + return tr("Profile"); + case ProjectExplorer::BuildConfiguration::Release: + return tr("Release"); + default: + return QString(); + } } } // namespace Nim diff --git a/src/plugins/nim/project/nimbuildconfiguration.h b/src/plugins/nim/project/nimbuildconfiguration.h index 60508220bd6..e0047e18411 100644 --- a/src/plugins/nim/project/nimbuildconfiguration.h +++ b/src/plugins/nim/project/nimbuildconfiguration.h @@ -73,8 +73,9 @@ private: const QString &projectPath) const override; ProjectExplorer::BuildInfo *createBuildInfo(const ProjectExplorer::Kit *k, - const QString &projectPath, ProjectExplorer::BuildConfiguration::BuildType buildType) const; + + QString displayName(ProjectExplorer::BuildConfiguration::BuildType buildType) const; }; } |