diff options
-rw-r--r-- | src/plugins/mcusupport/mcusupportoptions.cpp | 19 | ||||
-rw-r--r-- | src/plugins/mcusupport/mcusupportoptions.h | 9 | ||||
-rw-r--r-- | src/plugins/mcusupport/mcusupportsdk.cpp | 19 |
3 files changed, 29 insertions, 18 deletions
diff --git a/src/plugins/mcusupport/mcusupportoptions.cpp b/src/plugins/mcusupport/mcusupportoptions.cpp index 911f0b3091..f4a333b6fa 100644 --- a/src/plugins/mcusupport/mcusupportoptions.cpp +++ b/src/plugins/mcusupport/mcusupportoptions.cpp @@ -336,10 +336,12 @@ QVariant McuToolChainPackage::debuggerId() const return debuggerId; } -McuTarget::McuTarget(const QString &vendor, const QString &platform, OS os, +McuTarget::McuTarget(const QVersionNumber &qulVersion, const QString &vendor, + const QString &platform, OS os, const QVector<McuPackage *> &packages, const McuToolChainPackage *toolChainPackage) - : m_vendor(vendor) + : m_qulVersion(qulVersion) + , m_vendor(vendor) , m_qulPlatform(platform) , m_os(os) , m_packages(packages) @@ -379,6 +381,11 @@ bool McuTarget::isValid() const }); } +QVersionNumber McuTarget::qulVersion() const +{ + return m_qulVersion; +} + int McuTarget::colorDepth() const { return m_colorDepth; @@ -455,7 +462,7 @@ void McuSupportOptions::deletePackagesAndTargets() mcuTargets.clear(); } -const QVersionNumber &McuSupportOptions::supportedQulVersion() +const QVersionNumber &McuSupportOptions::minimalQulVersion() { static const QVersionNumber v({1, 3}); return v; @@ -498,7 +505,7 @@ static void setKitProperties(const QString &kitName, ProjectExplorer::Kit *k, k->setValue(KIT_MCUTARGET_VENDOR_KEY, mcuTarget->vendor()); k->setValue(KIT_MCUTARGET_MODEL_KEY, mcuTarget->qulPlatform()); k->setValue(KIT_MCUTARGET_COLORDEPTH_KEY, mcuTarget->colorDepth()); - k->setValue(KIT_MCUTARGET_SDKVERSION_KEY, McuSupportOptions::supportedQulVersion().toString()); + k->setValue(KIT_MCUTARGET_SDKVERSION_KEY, mcuTarget->qulVersion().toString()); k->setValue(KIT_MCUTARGET_KITVERSION_KEY, KIT_VERSION); k->setValue(KIT_MCUTARGET_OS_KEY, static_cast<int>(mcuTarget->os())); k->setAutoDetected(true); @@ -631,7 +638,7 @@ QString McuSupportOptions::kitName(const McuTarget *mcuTarget) ? "Desktop" : mcuTarget->qulPlatform(); return QString::fromLatin1("Qt for MCUs %1 - %2%3%4") - .arg(supportedQulVersion().toString(), targetName, os, colorDepth); + .arg(mcuTarget->qulVersion().toString(), targetName, os, colorDepth); } QList<ProjectExplorer::Kit *> McuSupportOptions::existingKits(const McuTarget *mcuTarget) @@ -641,8 +648,6 @@ QList<ProjectExplorer::Kit *> McuSupportOptions::existingKits(const McuTarget *m return Utils::filtered(KitManager::kits(), [mcuTarget](Kit *kit) { return kit->isAutoDetected() && kit->value(KIT_MCUTARGET_KITVERSION_KEY) == KIT_VERSION - && kit->value(KIT_MCUTARGET_SDKVERSION_KEY) == - McuSupportOptions::supportedQulVersion().toString() && (!mcuTarget || ( kit->value(KIT_MCUTARGET_VENDOR_KEY) == mcuTarget->vendor() && kit->value(KIT_MCUTARGET_MODEL_KEY) == mcuTarget->qulPlatform() diff --git a/src/plugins/mcusupport/mcusupportoptions.h b/src/plugins/mcusupport/mcusupportoptions.h index 0ef910b756..ed5e70eec1 100644 --- a/src/plugins/mcusupport/mcusupportoptions.h +++ b/src/plugins/mcusupport/mcusupportoptions.h @@ -138,9 +138,11 @@ public: FreeRTOS }; - McuTarget(const QString &vendor, const QString &platform, OS os, - const QVector<McuPackage *> &packages, const McuToolChainPackage *toolChainPackage); + McuTarget(const QVersionNumber &qulVersion, const QString &vendor, const QString &platform, + OS os, const QVector<McuPackage *> &packages, + const McuToolChainPackage *toolChainPackage); + QVersionNumber qulVersion() const; QString vendor() const; QVector<McuPackage *> packages() const; const McuToolChainPackage *toolChainPackage() const; @@ -151,6 +153,7 @@ public: bool isValid() const; private: + const QVersionNumber m_qulVersion; const QString m_vendor; const QString m_qulPlatform; const OS m_os = OS::BareMetal; @@ -184,7 +187,7 @@ public: static void registerQchFiles(); static void registerExamples(); - static const QVersionNumber &supportedQulVersion(); + static const QVersionNumber &minimalQulVersion(); private: void deletePackagesAndTargets(); diff --git a/src/plugins/mcusupport/mcusupportsdk.cpp b/src/plugins/mcusupport/mcusupportsdk.cpp index e3e44a9eaf..6279e446d8 100644 --- a/src/plugins/mcusupport/mcusupportsdk.cpp +++ b/src/plugins/mcusupport/mcusupportsdk.cpp @@ -59,8 +59,8 @@ static QString findInProgramFiles(const QString &folder) McuPackage *createQtForMCUsPackage() { auto result = new McuPackage( - McuPackage::tr("Qt for MCUs %1 SDK").arg( - McuSupportOptions::supportedQulVersion().toString()), + McuPackage::tr("Qt for MCUs %1+ SDK").arg( + McuSupportOptions::minimalQulVersion().toString()), QDir::homePath(), Utils::HostOsInfo::withExecutableSuffix("bin/qmltocpp"), Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK); @@ -276,7 +276,8 @@ static QVector<McuTarget *> targetsFromDescriptions(const QList<McuTargetDescrip for (auto desc : descriptions) { McuToolChainPackage *tcPkg = tcPkgs.value(desc.toolchainId); if (desc.toolchainId == "desktop") { - auto mcuTarget = new McuTarget(desc.platformVendor, desc.platform, + auto mcuTarget = new McuTarget(QVersionNumber::fromString(desc.qulVersion), + desc.platformVendor, desc.platform, McuTarget::OS::Desktop, {}, tcPkg); mcuTargets.append(mcuTarget); continue; @@ -310,7 +311,8 @@ static QVector<McuTarget *> targetsFromDescriptions(const QList<McuTargetDescrip } } - auto mcuTarget = new McuTarget(desc.platformVendor, desc.platform, os, + auto mcuTarget = new McuTarget(QVersionNumber::fromString(desc.qulVersion), + desc.platformVendor, desc.platform, os, required3rdPartyPkgs, tcPkg); if (desc.colorDepths.count() > 1) mcuTarget->setColorDepth(colorDepth); @@ -370,16 +372,17 @@ void targetsAndPackages(const Utils::FilePath &dir, QVector<McuPackage *> *packa if (!file.open(QFile::ReadOnly)) continue; const McuTargetDescription desc = parseDescriptionJson(file.readAll()); - if (!McuSupportOptions::supportedQulVersion() - .isPrefixOf(QVersionNumber::fromString(desc.qulVersion))) + if (QVersionNumber::fromString(desc.qulVersion) < McuSupportOptions::minimalQulVersion()) return; // Invalid version means invalid SDK installation. descriptions.append(desc); } // Workaround for missing JSON file for Desktop target: if (dir.pathAppended("/lib/QulQuickUltralite_QT_32bpp_Windows_Release.lib").exists()) { - descriptions.prepend({McuSupportOptions::supportedQulVersion().toString(), - {"Qt"}, {"Qt"}, {32}, {"desktop"}, {}, {}, {}}); + const QString qulVersion = descriptions.empty() ? + McuSupportOptions::minimalQulVersion().toString() + : descriptions.first().qulVersion; + descriptions.prepend({qulVersion, {"Qt"}, {"Qt"}, {32}, {"desktop"}, {}, {}, {}}); } mcuTargets->append(targetsFromDescriptions(descriptions, packages)); |