McuSupport: provide RunConfigurations for multiple CMake targets

Task-number: QTCREATORBUG-26656
Change-Id: I2177044580f9137a5c530cc0a862d69d389fe447
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Christiaan Janssen
2021-12-16 16:54:19 +01:00
parent b1db3d2506
commit fc25c76a4f
2 changed files with 8 additions and 9 deletions

View File

@@ -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<FlashAndRunConfiguration>(Constants::RUNCONFIGURATION);
addSupportedTargetDeviceType(Constants::DEVICE_TYPE);

View File

@@ -31,7 +31,7 @@
namespace McuSupport {
namespace Internal {
class McuSupportRunConfigurationFactory final : public ProjectExplorer::FixedRunConfigurationFactory
class McuSupportRunConfigurationFactory final : public ProjectExplorer::RunConfigurationFactory
{
public:
McuSupportRunConfigurationFactory();