diff --git a/src/plugins/mcusupport/mcusupportrunconfiguration.cpp b/src/plugins/mcusupport/mcusupportrunconfiguration.cpp index 9369fe589fa..21b3f182689 100644 --- a/src/plugins/mcusupport/mcusupportrunconfiguration.cpp +++ b/src/plugins/mcusupport/mcusupportrunconfiguration.cpp @@ -51,12 +51,11 @@ static FilePath cmakeFilePath(const Target *target) return tool->filePath(); } -static QStringList flashAndRunArgs(const Target *target) +static QStringList flashAndRunArgs(const RunConfiguration *rc, const Target *target) { - const QString projectName = target->project()->displayName(); - - // TODO: Hack! Implement flash target name handling, properly - const QString targetName = "flash_" + projectName; + // Use buildKey if provided, fallback to projectName + const QString targetName = QLatin1String("flash_%1").arg( + !rc->buildKey().isEmpty() ? rc->buildKey() : target->project()->displayName()); return {"--build", ".", "--target", targetName}; } @@ -74,8 +73,8 @@ public: flashAndRunParameters->setDisplayStyle(StringAspect::TextEditDisplay); flashAndRunParameters->setSettingsKey("FlashAndRunConfiguration.Parameters"); - setUpdater([target, flashAndRunParameters] { - flashAndRunParameters->setValue(flashAndRunArgs(target).join(' ')); + setUpdater([target, flashAndRunParameters, this] { + flashAndRunParameters->setValue(flashAndRunArgs(this, target).join(' ')); }); update(); @@ -109,7 +108,7 @@ RunWorkerFactory::WorkerCreator makeFlashAndRunWorker() } McuSupportRunConfigurationFactory::McuSupportRunConfigurationFactory() - : FixedRunConfigurationFactory(FlashAndRunConfiguration::tr("Flash and run")) + : RunConfigurationFactory() { registerRunConfiguration(Constants::RUNCONFIGURATION); addSupportedTargetDeviceType(Constants::DEVICE_TYPE); diff --git a/src/plugins/mcusupport/mcusupportrunconfiguration.h b/src/plugins/mcusupport/mcusupportrunconfiguration.h index 3561306457f..528564d7d42 100644 --- a/src/plugins/mcusupport/mcusupportrunconfiguration.h +++ b/src/plugins/mcusupport/mcusupportrunconfiguration.h @@ -31,7 +31,7 @@ namespace McuSupport { namespace Internal { -class McuSupportRunConfigurationFactory final : public ProjectExplorer::FixedRunConfigurationFactory +class McuSupportRunConfigurationFactory final : public ProjectExplorer::RunConfigurationFactory { public: McuSupportRunConfigurationFactory();