diff --git a/src/plugins/android/createandroidmanifestwizard.cpp b/src/plugins/android/createandroidmanifestwizard.cpp index 93959e371d7..05f4d2b2d5a 100644 --- a/src/plugins/android/createandroidmanifestwizard.cpp +++ b/src/plugins/android/createandroidmanifestwizard.cpp @@ -157,7 +157,7 @@ ChooseDirectoryPage::ChooseDirectoryPage(CreateAndroidManifestWizard *wizard) void ChooseDirectoryPage::checkPackageSourceDir() { const QString buildKey = m_wizard->buildKey(); - const BuildTargetInfo bti = m_wizard->target()->applicationTargets().buildTargetInfo(buildKey); + const BuildTargetInfo bti = m_wizard->target()->buildTarget(buildKey); const QString projectDir = bti.projectFilePath.toFileInfo().absolutePath(); const QString newDir = m_androidPackageSourceDir->path(); @@ -181,7 +181,7 @@ void ChooseDirectoryPage::initializePage() { const Target *target = m_wizard->target(); const QString buildKey = m_wizard->buildKey(); - const BuildTargetInfo bti = target->applicationTargets().buildTargetInfo(buildKey); + const BuildTargetInfo bti = target->buildTarget(buildKey); const QString projectDir = bti.projectFilePath.toFileInfo().absolutePath(); QString androidPackageDir; @@ -357,7 +357,7 @@ void CreateAndroidManifestWizard::createAndroidTemplateFiles() if (androidPackageDir.isEmpty()) { // and now time for some magic - const BuildTargetInfo bti = m_target->applicationTargets().buildTargetInfo(m_buildKey); + const BuildTargetInfo bti = m_target->buildTarget(m_buildKey); const QString value = "$$PWD/" + bti.projectFilePath.toFileInfo().absoluteDir().relativeFilePath(m_directory); bool result = node->setData(Android::Constants::AndroidPackageSourceDir, value); diff --git a/src/plugins/autotest/testconfiguration.cpp b/src/plugins/autotest/testconfiguration.cpp index 6e0efcd65a2..60a1a5e78ce 100644 --- a/src/plugins/autotest/testconfiguration.cpp +++ b/src/plugins/autotest/testconfiguration.cpp @@ -93,8 +93,7 @@ void TestConfiguration::completeTestInformation(ProjectExplorer::RunConfiguratio m_runnable = rc->runnable(); m_displayName = rc->displayName(); - const QString buildKey = rc->buildKey(); - BuildTargetInfo targetInfo = target->applicationTargets().buildTargetInfo(buildKey); + BuildTargetInfo targetInfo = rc->buildTargetInfo(); if (!targetInfo.targetFilePath.isEmpty()) m_runnable.executable = ensureExeEnding(targetInfo.targetFilePath.toString()); diff --git a/src/plugins/baremetal/baremetalrunconfiguration.cpp b/src/plugins/baremetal/baremetalrunconfiguration.cpp index cdfa2ddca65..19052de4425 100644 --- a/src/plugins/baremetal/baremetalrunconfiguration.cpp +++ b/src/plugins/baremetal/baremetalrunconfiguration.cpp @@ -62,7 +62,7 @@ BareMetalRunConfiguration::BareMetalRunConfiguration(Target *target, Core::Id id void BareMetalRunConfiguration::updateTargetInformation() { - const BuildTargetInfo bti = target()->applicationTargets().buildTargetInfo(buildKey()); + const BuildTargetInfo bti = buildTargetInfo(); aspect()->setExecutable(bti.targetFilePath); emit enabledChanged(); } diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp index 073a147dd7c..48eaa9a41dd 100644 --- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp @@ -97,7 +97,7 @@ QString CMakeRunConfiguration::disabledReason() const void CMakeRunConfiguration::updateTargetInformation() { - BuildTargetInfo bti = target()->applicationTargets().buildTargetInfo(buildKey()); + BuildTargetInfo bti = buildTargetInfo(); aspect()->setExecutable(bti.targetFilePath); aspect()->setDefaultWorkingDirectory(bti.workingDirectory); aspect()->buildEnvironmentHasChanged(); diff --git a/src/plugins/projectexplorer/buildtargetinfo.h b/src/plugins/projectexplorer/buildtargetinfo.h index 38cadea9912..e0cb22b6f2a 100644 --- a/src/plugins/projectexplorer/buildtargetinfo.h +++ b/src/plugins/projectexplorer/buildtargetinfo.h @@ -79,23 +79,7 @@ inline uint qHash(const BuildTargetInfo &ti) class PROJECTEXPLORER_EXPORT BuildTargetInfoList { public: - BuildTargetInfo buildTargetInfo(const QString &buildKey) { - return Utils::findOrDefault(list, [&buildKey](const BuildTargetInfo &ti) { - return ti.buildKey == buildKey; - }); - } - QList list; }; -inline bool operator==(const BuildTargetInfoList &til1, const BuildTargetInfoList &til2) -{ - return til1.list.toSet() == til2.list.toSet(); -} - -inline bool operator!=(const BuildTargetInfoList &til1, const BuildTargetInfoList &til2) -{ - return !(til1 == til2); -} - } // namespace ProjectExplorer diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp index 9b58ab701c9..12a6ab56868 100644 --- a/src/plugins/projectexplorer/runconfiguration.cpp +++ b/src/plugins/projectexplorer/runconfiguration.cpp @@ -313,7 +313,7 @@ QVariantMap RunConfiguration::toMap() const BuildTargetInfo RunConfiguration::buildTargetInfo() const { - return target()->applicationTargets().buildTargetInfo(m_buildKey); + return target()->buildTarget(m_buildKey); } bool RunConfiguration::fromMap(const QVariantMap &map) diff --git a/src/plugins/projectexplorer/target.cpp b/src/plugins/projectexplorer/target.cpp index f8f34f9cc1d..9baa1e8841b 100644 --- a/src/plugins/projectexplorer/target.cpp +++ b/src/plugins/projectexplorer/target.cpp @@ -347,7 +347,7 @@ DeploymentData Target::deploymentData() const void Target::setApplicationTargets(const BuildTargetInfoList &appTargets) { - if (d->m_appTargets != appTargets) { + if (appTargets.list.toSet() != d->m_appTargets.list.toSet()) { d->m_appTargets = appTargets; emit applicationTargetsChanged(); } @@ -358,6 +358,13 @@ BuildTargetInfoList Target::applicationTargets() const return d->m_appTargets; } +BuildTargetInfo Target::buildTarget(const QString &buildKey) const +{ + return Utils::findOrDefault(d->m_appTargets.list, [&buildKey](const BuildTargetInfo &ti) { + return ti.buildKey == buildKey; + }); +} + QList Target::projectConfigurations() const { QList result; diff --git a/src/plugins/projectexplorer/target.h b/src/plugins/projectexplorer/target.h index a1e1ee8151f..9734210278d 100644 --- a/src/plugins/projectexplorer/target.h +++ b/src/plugins/projectexplorer/target.h @@ -37,6 +37,7 @@ QT_FORWARD_DECLARE_CLASS(QIcon) namespace ProjectExplorer { class BuildConfiguration; class BuildTargetInfoList; +class BuildTargetInfo; class DeployConfiguration; class DeploymentData; class Kit; @@ -82,6 +83,7 @@ public: void setApplicationTargets(const BuildTargetInfoList &appTargets); BuildTargetInfoList applicationTargets() const; + BuildTargetInfo buildTarget(const QString &buildKey) const; QList projectConfigurations() const; diff --git a/src/plugins/winrt/winrtrunnerhelper.cpp b/src/plugins/winrt/winrtrunnerhelper.cpp index bbb17f67b39..061dd0ca579 100644 --- a/src/plugins/winrt/winrtrunnerhelper.cpp +++ b/src/plugins/winrt/winrtrunnerhelper.cpp @@ -68,7 +68,7 @@ WinRtRunnerHelper::WinRtRunnerHelper(ProjectExplorer::RunWorker *runWorker, QStr return; } - const BuildTargetInfo bti = target->applicationTargets().buildTargetInfo(runConfiguration->buildKey()); + const BuildTargetInfo bti = runConfiguration->buildTargetInfo(); m_executableFilePath = bti.targetFilePath.toString(); if (m_executableFilePath.isEmpty()) {