CMake: Use Standard RunConfiguration::initialize(Id) signature

Change-Id: I66b534df216552d129d4605148ff3b4eff543d11
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
hjk
2017-11-14 15:48:08 +01:00
parent 761505071d
commit 28fda42c62
2 changed files with 16 additions and 15 deletions

View File

@@ -70,15 +70,21 @@ CMakeRunConfiguration::CMakeRunConfiguration(Target *target)
addExtraAspect(new WorkingDirectoryAspect(this, "CMakeProjectManager.CMakeRunConfiguration.UserWorkingDirectory")); addExtraAspect(new WorkingDirectoryAspect(this, "CMakeProjectManager.CMakeRunConfiguration.UserWorkingDirectory"));
} }
void CMakeRunConfiguration::initialize(Core::Id id, const QString &target, void CMakeRunConfiguration::initialize(Core::Id id)
const Utils::FileName &workingDirectory, const QString &title)
{ {
RunConfiguration::initialize(id); RunConfiguration::initialize(id);
m_buildSystemTarget = target; QString executable = id.suffixAfter(CMAKE_RC_PREFIX);
m_executable = target;
m_title = title;
extraAspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(workingDirectory); CMakeProject *project = static_cast<CMakeProject *>(target()->project());
m_buildSystemTarget = executable;
m_executable = executable;
if (!executable.isEmpty()) {
const CMakeBuildTarget ct = project->buildTargetForTitle(executable);
m_title = ct.title;
extraAspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(ct.workingDirectory);
}
setDefaultDisplayName(defaultDisplayName()); setDefaultDisplayName(defaultDisplayName());
} }
@@ -254,10 +260,7 @@ bool CMakeRunConfigurationFactory::canCreate(Target *parent, Core::Id id) const
RunConfiguration *CMakeRunConfigurationFactory::doCreate(Target *parent, Core::Id id) RunConfiguration *CMakeRunConfigurationFactory::doCreate(Target *parent, Core::Id id)
{ {
CMakeProject *project = static_cast<CMakeProject *>(parent->project()); return createHelper<CMakeRunConfiguration>(parent, id);
const QString title(buildTargetFromId(id));
const CMakeBuildTarget &ct = project->buildTargetForTitle(title);
return createHelper<CMakeRunConfiguration>(parent, id, title, ct.workingDirectory, ct.title);
} }
bool CMakeRunConfigurationFactory::canClone(Target *parent, RunConfiguration *source) const bool CMakeRunConfigurationFactory::canClone(Target *parent, RunConfiguration *source) const
@@ -277,7 +280,7 @@ bool CMakeRunConfigurationFactory::canRestore(Target *parent, const QVariantMap
RunConfiguration *CMakeRunConfigurationFactory::doRestore(Target *parent, const QVariantMap &map) RunConfiguration *CMakeRunConfigurationFactory::doRestore(Target *parent, const QVariantMap &map)
{ {
const Core::Id id = idFromMap(map); const Core::Id id = idFromMap(map);
return createHelper<CMakeRunConfiguration>(parent, id, buildTargetFromId(id), Utils::FileName(), QString()); return createHelper<CMakeRunConfiguration>(parent, id);
} }
QString CMakeRunConfigurationFactory::buildTargetFromId(Core::Id id) QString CMakeRunConfigurationFactory::buildTargetFromId(Core::Id id)

View File

@@ -35,7 +35,6 @@ class CMakeRunConfiguration : public ProjectExplorer::RunConfiguration
{ {
Q_OBJECT Q_OBJECT
friend class CMakeRunConfigurationWidget; friend class CMakeRunConfigurationWidget;
friend class ProjectExplorer::IRunConfigurationFactory;
public: public:
explicit CMakeRunConfiguration(ProjectExplorer::Target *target); explicit CMakeRunConfiguration(ProjectExplorer::Target *target);
@@ -56,10 +55,9 @@ public:
Utils::OutputFormatter *createOutputFormatter() const final; Utils::OutputFormatter *createOutputFormatter() const final;
private: void initialize(Core::Id id);
void initialize(Core::Id id, const QString &target,
const Utils::FileName &workingDirectory, const QString &title);
private:
bool fromMap(const QVariantMap &map) override; bool fromMap(const QVariantMap &map) override;
QString defaultDisplayName() const; QString defaultDisplayName() const;