aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/nim
diff options
context:
space:
mode:
authorFilippo Cucchetto <filippocucchetto@gmail.com>2018-12-15 12:17:26 +0100
committerFilippo Cucchetto <filippocucchetto@gmail.com>2018-12-18 12:04:33 +0000
commit612410e1f92ff9783fa668f21d48776cc81675b4 (patch)
tree070b78421164d5a274f67659ce50305f77d1ea08 /src/plugins/nim
parent8770d83fc8bd71691e7cbb5114a1c0b4b8cb4ed8 (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.cpp56
-rw-r--r--src/plugins/nim/project/nimbuildconfiguration.h3
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;
};
}