summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/mcusupport/mcupackage.cpp17
-rw-r--r--src/plugins/mcusupport/mcupackage.h3
-rw-r--r--src/plugins/mcusupport/mcusupportsdk.cpp25
3 files changed, 36 insertions, 9 deletions
diff --git a/src/plugins/mcusupport/mcupackage.cpp b/src/plugins/mcusupport/mcupackage.cpp
index 35c87fe2ba..99e35b4ea1 100644
--- a/src/plugins/mcusupport/mcupackage.cpp
+++ b/src/plugins/mcusupport/mcupackage.cpp
@@ -160,6 +160,8 @@ McuPackage::Status McuPackage::status() const
bool McuPackage::isValidStatus() const
{
+ if (m_isQtMCUsPackage)
+ return m_status == Status::ValidPackage;
return m_status == Status::ValidPackage || m_status == Status::ValidPackageMismatchedVersion;
}
@@ -170,7 +172,10 @@ void McuPackage::updateStatusUi()
m_infoLabel->setType(InfoLabel::Ok);
break;
case Status::ValidPackageMismatchedVersion:
- m_infoLabel->setType(InfoLabel::Warning);
+ if (m_isQtMCUsPackage)
+ m_infoLabel->setType(InfoLabel::NotOk);
+ else
+ m_infoLabel->setType(InfoLabel::Warning);
break;
default:
m_infoLabel->setType(InfoLabel::NotOk);
@@ -204,6 +209,11 @@ QString McuPackage::statusText() const
.arg(displayPackagePath, displayDetectedPath);
break;
case Status::ValidPackageMismatchedVersion: {
+ if (m_isQtMCUsPackage) {
+ response = "Kits will not generate correctly. Use QtCreator 9 and above for QtMCUs "
+ "2.3 and later";
+ break;
+ }
const QString versionWarning
= m_versions.size() == 1
? tr("but only version %1 is supported").arg(m_versions.first())
@@ -273,6 +283,11 @@ QWidget *McuPackage::widget()
return widget;
}
+void McuPackage::setIsQtMCUsPackage(bool isQtMCUsPackage)
+{
+ m_isQtMCUsPackage = isQtMCUsPackage;
+};
+
McuToolChainPackage::McuToolChainPackage(const SettingsHandler::Ptr &settingsHandler,
const QString &label,
const FilePath &defaultPath,
diff --git a/src/plugins/mcusupport/mcupackage.h b/src/plugins/mcusupport/mcupackage.h
index 7316fbea15..2067cacce4 100644
--- a/src/plugins/mcusupport/mcupackage.h
+++ b/src/plugins/mcusupport/mcupackage.h
@@ -90,6 +90,8 @@ public:
QWidget *widget() override;
+ void setIsQtMCUsPackage(bool isQtMCUsPackage);
+
private:
void updatePath();
void updateStatusUi();
@@ -113,6 +115,7 @@ private:
const QString m_environmentVariableName;
const QString m_downloadUrl;
const bool m_addToSystemPath;
+ bool m_isQtMCUsPackage = false;
Status m_status = Status::InvalidPath;
};
diff --git a/src/plugins/mcusupport/mcusupportsdk.cpp b/src/plugins/mcusupport/mcusupportsdk.cpp
index b0d8a36cfd..fbdd2f38bb 100644
--- a/src/plugins/mcusupport/mcusupportsdk.cpp
+++ b/src/plugins/mcusupport/mcusupportsdk.cpp
@@ -37,6 +37,7 @@
#include "mcutargetfactory.h"
#include "mcutargetfactorylegacy.h"
+#include <app/app_version.h>
#include <baremetal/baremetalconstants.h>
#include <coreplugin/icore.h>
#include <projectexplorer/toolchain.h>
@@ -79,14 +80,22 @@ static FilePath findInProgramFiles(const QString &folder)
McuPackagePtr createQtForMCUsPackage(const SettingsHandler::Ptr &settingsHandler)
{
- return McuPackagePtr{
- new McuPackage(settingsHandler,
- McuPackage::tr("Qt for MCUs SDK"),
- FileUtils::homePath(), // defaultPath
- FilePath("bin/qmltocpp").withExecutableSuffix(), // detectionPath
- Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK, // settingsKey
- QStringLiteral("Qul_ROOT"), // cmakeVarName
- QStringLiteral("Qul_DIR"))}; // envVarName
+ auto package = new McuPackage(settingsHandler,
+ McuPackage::tr("Qt for MCUs SDK"),
+ FileUtils::homePath(), // defaultPath
+ FilePath("bin/qmltocpp").withExecutableSuffix(), // detectionPath
+ Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK, // settingsKey
+ QStringLiteral("Qul_ROOT"), // cmakeVarName
+ QStringLiteral("Qul_DIR"), // envVarName
+ {}, // download rul
+ new McuPackagePathVersionDetector(R"(\d.\d)") // version detector
+ );
+
+ if (IDE_VERSION_MAJOR < 9)
+ package->setVersions({"2.0", "2.1", "2.2"});
+ package->setIsQtMCUsPackage(true);
+
+ return McuPackagePtr{package};
}
static McuPackageVersionDetector *generatePackageVersionDetector(const QString &envVar)