diff --git a/src/plugins/projectexplorer/projectimporter.cpp b/src/plugins/projectexplorer/projectimporter.cpp index 760db32763e..6aba0c1a82d 100644 --- a/src/plugins/projectexplorer/projectimporter.cpp +++ b/src/plugins/projectexplorer/projectimporter.cpp @@ -26,8 +26,11 @@ #include "projectimporter.h" #include "kit.h" +#include "kitinformation.h" #include "kitmanager.h" #include "project.h" +#include "projectexplorerconstants.h" +#include "target.h" #include @@ -49,6 +52,31 @@ ProjectImporter::~ProjectImporter() removeProject(k); } +Target *ProjectImporter::preferredTarget(const QList &possibleTargets) +{ + // Select active target + // a) The default target + // c) Desktop target + // d) the first target + Target *activeTarget = nullptr; + if (possibleTargets.isEmpty()) + return activeTarget; + + activeTarget = possibleTargets.at(0); + bool pickedFallback = false; + foreach (Target *t, possibleTargets) { + if (t->kit() == KitManager::defaultKit()) + return t; + if (pickedFallback) + continue; + if (DeviceTypeKitInformation::deviceTypeId(t->kit()) == Constants::DESKTOP_DEVICE_TYPE) { + activeTarget = t; + pickedFallback = true; + } + } + return activeTarget; +} + void ProjectImporter::markTemporary(Kit *k) { QTC_ASSERT(!k->hasValue(KIT_IS_TEMPORARY), return); diff --git a/src/plugins/projectexplorer/projectimporter.h b/src/plugins/projectexplorer/projectimporter.h index 050fce27327..deb91fa516d 100644 --- a/src/plugins/projectexplorer/projectimporter.h +++ b/src/plugins/projectexplorer/projectimporter.h @@ -47,7 +47,7 @@ public: virtual QList import(const Utils::FileName &importPath, bool silent = false) = 0; virtual QStringList importCandidates() = 0; - virtual Target *preferredTarget(const QList &possibleTargets) = 0; + virtual Target *preferredTarget(const QList &possibleTargets); bool isUpdating() const { return m_isUpdating; } diff --git a/src/plugins/qmakeprojectmanager/qmakeprojectimporter.cpp b/src/plugins/qmakeprojectmanager/qmakeprojectimporter.cpp index 6bff1aab3c5..6a127dd1936 100644 --- a/src/plugins/qmakeprojectmanager/qmakeprojectimporter.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeprojectimporter.cpp @@ -33,9 +33,7 @@ #include "qmakestep.h" #include -#include #include -#include #include #include #include @@ -249,28 +247,6 @@ QStringList QmakeProjectImporter::importCandidates() return candidates; } -Target *QmakeProjectImporter::preferredTarget(const QList &possibleTargets) -{ - // Select active target - // a) The default target - // b) Simulator target - // c) Desktop target - // d) the first target - Target *activeTarget = possibleTargets.isEmpty() ? 0 : possibleTargets.at(0); - int activeTargetPriority = 0; - foreach (Target *t, possibleTargets) { - BaseQtVersion *version = QtKitInformation::qtVersion(t->kit()); - if (t->kit() == KitManager::defaultKit()) { - activeTarget = t; - activeTargetPriority = 3; - } else if (activeTargetPriority < 1 && version && version->type() == QLatin1String(QtSupport::Constants::DESKTOPQT)) { - activeTarget = t; - activeTargetPriority = 1; - } - } - return activeTarget; -} - static ToolChain *preferredToolChain(BaseQtVersion *qtVersion, const FileName &ms, const QMakeStepConfig::TargetArchConfig &archConfig) { const FileName spec = ms.isEmpty() ? qtVersion->mkspec() : ms; diff --git a/src/plugins/qmakeprojectmanager/qmakeprojectimporter.h b/src/plugins/qmakeprojectmanager/qmakeprojectimporter.h index aa59a152322..fd63a6e7201 100644 --- a/src/plugins/qmakeprojectmanager/qmakeprojectimporter.h +++ b/src/plugins/qmakeprojectmanager/qmakeprojectimporter.h @@ -45,7 +45,6 @@ public: QList import(const Utils::FileName &importPath, bool silent = false) final; QStringList importCandidates() final; - ProjectExplorer::Target *preferredTarget(const QList &possibleTargets) final; private: ProjectExplorer::Kit *createTemporaryKit(const QtProjectImporter::QtVersionData &data,