Nim: Remove unnecessary NimBuildInfo

Change-Id: Ie67d41081ffa3f1b732d38aed83d812c5a712493
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Filippo Cucchetto <filippocucchetto@gmail.com>
This commit is contained in:
Tobias Hunger
2016-08-25 12:36:07 +02:00
parent 72cca4855d
commit 4fb2932726
2 changed files with 17 additions and 36 deletions

View File

@@ -49,21 +49,6 @@ using namespace Utils;
namespace Nim { namespace Nim {
class NimBuildInfo : public BuildInfo
{
public:
NimBuildInfo(BuildConfiguration::BuildType buildType,
const NimBuildConfigurationFactory *factory)
: BuildInfo(factory), m_buildType(buildType)
{}
BuildConfiguration::BuildType buildType() const { return m_buildType; }
private:
BuildConfiguration::BuildType m_buildType;
};
NimBuildConfigurationFactory::NimBuildConfigurationFactory(QObject *parent) NimBuildConfigurationFactory::NimBuildConfigurationFactory(QObject *parent)
: IBuildConfigurationFactory(parent) : IBuildConfigurationFactory(parent)
{} {}
@@ -75,9 +60,8 @@ QList<BuildInfo *> NimBuildConfigurationFactory::availableBuilds(const Target *p
QTC_ASSERT(project, return {}); QTC_ASSERT(project, return {});
// Create the build info // Create the build info
NimBuildInfo *info = createBuildInfo(parent->kit(), BuildInfo *info = createBuildInfo(parent->kit(), project->projectFilePath(),
project->projectFilePath(), BuildConfiguration::Debug);
BuildConfiguration::Debug);
info->displayName.clear(); // ask for a name info->displayName.clear(); // ask for a name
info->buildDirectory.clear(); // This depends on the displayName info->buildDirectory.clear(); // This depends on the displayName
@@ -87,8 +71,8 @@ QList<BuildInfo *> NimBuildConfigurationFactory::availableBuilds(const Target *p
QList<BuildInfo *> NimBuildConfigurationFactory::availableSetups(const Kit *k, const QString &projectPath) const QList<BuildInfo *> NimBuildConfigurationFactory::availableSetups(const Kit *k, const QString &projectPath) const
{ {
NimBuildInfo *debug = createBuildInfo(k, projectPath, BuildConfiguration::Debug); BuildInfo *debug = createBuildInfo(k, projectPath, BuildConfiguration::Debug);
NimBuildInfo *release = createBuildInfo(k, projectPath, BuildConfiguration::Release); BuildInfo *release = createBuildInfo(k, projectPath, BuildConfiguration::Release);
return { debug, release }; return { debug, release };
} }
@@ -97,23 +81,21 @@ BuildConfiguration *NimBuildConfigurationFactory::create(Target *parent, const B
auto project = qobject_cast<NimProject *>(parent->project()); auto project = qobject_cast<NimProject *>(parent->project());
QTC_ASSERT(project, return nullptr); QTC_ASSERT(project, return nullptr);
auto nimInfo = static_cast<const NimBuildInfo *>(info);
// Create the build configuration and initialize it from build info // Create the build configuration and initialize it from build info
auto result = new NimBuildConfiguration(parent); auto result = new NimBuildConfiguration(parent);
result->setDisplayName(nimInfo->displayName); result->setDisplayName(info->displayName);
result->setDefaultDisplayName(nimInfo->displayName); result->setDefaultDisplayName(info->displayName);
result->setBuildDirectory(defaultBuildDirectory(parent->kit(), result->setBuildDirectory(defaultBuildDirectory(parent->kit(),
project->projectFilePath(), project->projectFilePath(),
nimInfo->displayName, info->displayName,
nimInfo->buildType())); info->buildType));
// Add nim compiler build step // Add nim compiler build step
{ {
BuildStepList *buildSteps = result->stepList(Core::Id(ProjectExplorer::Constants::BUILDSTEPS_BUILD)); BuildStepList *buildSteps = result->stepList(Core::Id(ProjectExplorer::Constants::BUILDSTEPS_BUILD));
auto nimCompilerBuildStep = new NimCompilerBuildStep(buildSteps); auto nimCompilerBuildStep = new NimCompilerBuildStep(buildSteps);
NimCompilerBuildStep::DefaultBuildOptions defaultOption; NimCompilerBuildStep::DefaultBuildOptions defaultOption;
switch (nimInfo->buildType()) { switch (info->buildType) {
case BuildConfiguration::Release: case BuildConfiguration::Release:
defaultOption = NimCompilerBuildStep::DefaultBuildOptions::Release; defaultOption = NimCompilerBuildStep::DefaultBuildOptions::Release;
break; break;
@@ -207,11 +189,11 @@ FileName NimBuildConfigurationFactory::defaultBuildDirectory(const Kit *k,
return result; return result;
} }
NimBuildInfo *NimBuildConfigurationFactory::createBuildInfo(const Kit *k, BuildInfo *NimBuildConfigurationFactory::createBuildInfo(const Kit *k, const QString &projectFilePath,
const QString &projectFilePath, BuildConfiguration::BuildType buildType) const
BuildConfiguration::BuildType buildType) const
{ {
auto result = new NimBuildInfo(buildType, this); auto result = new BuildInfo(this);
result->buildType = buildType;
result->displayName = BuildConfiguration::buildTypeName(buildType); result->displayName = BuildConfiguration::buildTypeName(buildType);
result->buildDirectory = defaultBuildDirectory(k, projectFilePath, result->displayName, buildType); result->buildDirectory = defaultBuildDirectory(k, projectFilePath, result->displayName, buildType);
result->kitId = k->id(); result->kitId = k->id();
@@ -219,4 +201,4 @@ NimBuildInfo *NimBuildConfigurationFactory::createBuildInfo(const Kit *k,
return result; return result;
} }
} } // namespace Nim

View File

@@ -29,8 +29,6 @@
namespace Nim { namespace Nim {
class NimBuildInfo;
class NimBuildConfigurationFactory : public ProjectExplorer::IBuildConfigurationFactory class NimBuildConfigurationFactory : public ProjectExplorer::IBuildConfigurationFactory
{ {
Q_OBJECT Q_OBJECT
@@ -67,8 +65,9 @@ private:
const QString &projectPath, const QString &projectPath,
const QString &bc, ProjectExplorer::BuildConfiguration::BuildType buildType); const QString &bc, ProjectExplorer::BuildConfiguration::BuildType buildType);
NimBuildInfo *createBuildInfo(const ProjectExplorer::Kit *k, ProjectExplorer::BuildInfo *createBuildInfo(const ProjectExplorer::Kit *k,
const QString &projectPath, ProjectExplorer::BuildConfiguration::BuildType buildType) const; const QString &projectPath,
ProjectExplorer::BuildConfiguration::BuildType buildType) const;
}; };
} }