diff --git a/src/plugins/baremetal/baremetalrunconfiguration.cpp b/src/plugins/baremetal/baremetalrunconfiguration.cpp index b7fcf1b62ea..26d495f9b67 100644 --- a/src/plugins/baremetal/baremetalrunconfiguration.cpp +++ b/src/plugins/baremetal/baremetalrunconfiguration.cpp @@ -131,8 +131,10 @@ QString BareMetalRunConfiguration::defaultDisplayName() QString BareMetalRunConfiguration::localExecutableFilePath() const { + const QString targetName = QFileInfo(m_projectFilePath).completeBaseName(); + return target()->applicationTargets() - .targetForProject(FileName::fromString(m_projectFilePath)).toString(); + .targetFilePath(FileName::fromString(targetName).toString()).toString(); } QString BareMetalRunConfiguration::arguments() const @@ -158,9 +160,10 @@ QString BareMetalRunConfiguration::projectFilePath() const QString BareMetalRunConfiguration::buildSystemTarget() const { const BuildTargetInfoList targets = target()->applicationTargets(); - const Utils::FileName projectFilePath = Utils::FileName::fromString(m_projectFilePath); + const Utils::FileName projectFilePath = Utils::FileName::fromString(QFileInfo(m_projectFilePath).path()); + const QString targetName = QFileInfo(m_projectFilePath).completeBaseName(); auto bst = std::find_if(targets.list.constBegin(), targets.list.constEnd(), - [&projectFilePath](const BuildTargetInfo &bti) { return bti.projectFilePath == projectFilePath; }); + [&projectFilePath,&targetName](const BuildTargetInfo &bti) { return bti.projectFilePath == projectFilePath && bti.targetName == targetName; }); return (bst == targets.list.constEnd()) ? QString() : bst->targetName; } diff --git a/src/plugins/baremetal/baremetalrunconfigurationfactory.cpp b/src/plugins/baremetal/baremetalrunconfigurationfactory.cpp index 676c3dd8ada..b2381c62e2a 100644 --- a/src/plugins/baremetal/baremetalrunconfigurationfactory.cpp +++ b/src/plugins/baremetal/baremetalrunconfigurationfactory.cpp @@ -60,8 +60,9 @@ bool BareMetalRunConfigurationFactory::canCreate(Target *parent, Core::Id id) co { if (!canHandle(parent)) return false; + const QString targetName = QFileInfo(pathFromId(id)).completeBaseName(); return id == BareMetalCustomRunConfiguration::runConfigId() - || !parent->applicationTargets().targetForProject(pathFromId(id)).isEmpty(); + || !parent->applicationTargets().targetFilePath(targetName).isEmpty(); } bool BareMetalRunConfigurationFactory::canRestore(Target *parent, const QVariantMap &map) const @@ -89,7 +90,7 @@ QList BareMetalRunConfigurationFactory::availableCreationIds(Target *p const Core::Id base = Core::Id(BareMetalRunConfiguration::IdPrefix); foreach (const BuildTargetInfo &bti, parent->applicationTargets().list) - result << base.withSuffix(bti.projectFilePath.toString()); + result << base.withSuffix(bti.projectFilePath.toString() + QLatin1Char('/') + bti.targetName); result << BareMetalCustomRunConfiguration::runConfigId(); return result; }