From 28fda42c625600ea56b36b1c062e69586d822db1 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 14 Nov 2017 15:48:08 +0100 Subject: [PATCH] CMake: Use Standard RunConfiguration::initialize(Id) signature Change-Id: I66b534df216552d129d4605148ff3b4eff543d11 Reviewed-by: Tobias Hunger --- .../cmakerunconfiguration.cpp | 25 +++++++++++-------- .../cmakerunconfiguration.h | 6 ++--- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp index 76bf73778ec..69757049467 100644 --- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp @@ -70,15 +70,21 @@ CMakeRunConfiguration::CMakeRunConfiguration(Target *target) addExtraAspect(new WorkingDirectoryAspect(this, "CMakeProjectManager.CMakeRunConfiguration.UserWorkingDirectory")); } -void CMakeRunConfiguration::initialize(Core::Id id, const QString &target, - const Utils::FileName &workingDirectory, const QString &title) +void CMakeRunConfiguration::initialize(Core::Id id) { RunConfiguration::initialize(id); - m_buildSystemTarget = target; - m_executable = target; - m_title = title; + QString executable = id.suffixAfter(CMAKE_RC_PREFIX); - extraAspect()->setDefaultWorkingDirectory(workingDirectory); + CMakeProject *project = static_cast(target()->project()); + + m_buildSystemTarget = executable; + m_executable = executable; + + if (!executable.isEmpty()) { + const CMakeBuildTarget ct = project->buildTargetForTitle(executable); + m_title = ct.title; + extraAspect()->setDefaultWorkingDirectory(ct.workingDirectory); + } setDefaultDisplayName(defaultDisplayName()); } @@ -254,10 +260,7 @@ bool CMakeRunConfigurationFactory::canCreate(Target *parent, Core::Id id) const RunConfiguration *CMakeRunConfigurationFactory::doCreate(Target *parent, Core::Id id) { - CMakeProject *project = static_cast(parent->project()); - const QString title(buildTargetFromId(id)); - const CMakeBuildTarget &ct = project->buildTargetForTitle(title); - return createHelper(parent, id, title, ct.workingDirectory, ct.title); + return createHelper(parent, id); } 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) { const Core::Id id = idFromMap(map); - return createHelper(parent, id, buildTargetFromId(id), Utils::FileName(), QString()); + return createHelper(parent, id); } QString CMakeRunConfigurationFactory::buildTargetFromId(Core::Id id) diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h index c8e2f136219..09712c5cea0 100644 --- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h +++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h @@ -35,7 +35,6 @@ class CMakeRunConfiguration : public ProjectExplorer::RunConfiguration { Q_OBJECT friend class CMakeRunConfigurationWidget; - friend class ProjectExplorer::IRunConfigurationFactory; public: explicit CMakeRunConfiguration(ProjectExplorer::Target *target); @@ -56,10 +55,9 @@ public: Utils::OutputFormatter *createOutputFormatter() const final; -private: - void initialize(Core::Id id, const QString &target, - const Utils::FileName &workingDirectory, const QString &title); + void initialize(Core::Id id); +private: bool fromMap(const QVariantMap &map) override; QString defaultDisplayName() const;