forked from qt-creator/qt-creator
McuSupport: Remove outdated Qt for MCUs kits
Add a version to the generated Qt for MCUs kits. That version will increase with every change to the way Qt for MCUs kits get generated. If there are auto-detected Qt for MCUs kits with a different version than the current, remove these kits when a "fresh" gets generated. Task-number: QTCREATORBUG-23891 Change-Id: Iafcd2342d458f9c77ada47180cb61b3b4b090598 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -35,6 +35,7 @@ const char SETTINGS_ID[] = "CC.McuSupport.Configuration";
|
|||||||
const char KIT_MCUTARGET_VENDOR_KEY[] = "McuSupport.McuTargetVendor";
|
const char KIT_MCUTARGET_VENDOR_KEY[] = "McuSupport.McuTargetVendor";
|
||||||
const char KIT_MCUTARGET_MODEL_KEY[] = "McuSupport.McuTargetModel";
|
const char KIT_MCUTARGET_MODEL_KEY[] = "McuSupport.McuTargetModel";
|
||||||
const char KIT_MCUTARGET_SDKVERSION_KEY[] = "McuSupport.McuTargetSdkVersion";
|
const char KIT_MCUTARGET_SDKVERSION_KEY[] = "McuSupport.McuTargetSdkVersion";
|
||||||
|
const char KIT_MCUTARGET_KITVERSION_KEY[] = "McuSupport.McuTargetKitVersion";
|
||||||
|
|
||||||
const char SETTINGS_GROUP[] = "McuSupport";
|
const char SETTINGS_GROUP[] = "McuSupport";
|
||||||
const char SETTINGS_KEY_PACKAGE_PREFIX[] = "Package_";
|
const char SETTINGS_KEY_PACKAGE_PREFIX[] = "Package_";
|
||||||
|
@@ -61,6 +61,8 @@
|
|||||||
namespace McuSupport {
|
namespace McuSupport {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
|
static const int KIT_VERSION = 1; // Bumps up whenever details in Kit creation change
|
||||||
|
|
||||||
static QString packagePathFromSettings(const QString &settingsKey, const QString &defaultPath = {})
|
static QString packagePathFromSettings(const QString &settingsKey, const QString &defaultPath = {})
|
||||||
{
|
{
|
||||||
QSettings *s = Core::ICore::settings();
|
QSettings *s = Core::ICore::settings();
|
||||||
@@ -473,6 +475,7 @@ static void setKitProperties(const QString &kitName, ProjectExplorer::Kit *k,
|
|||||||
k->setValue(Constants::KIT_MCUTARGET_MODEL_KEY, mcuTarget->qulPlatform());
|
k->setValue(Constants::KIT_MCUTARGET_MODEL_KEY, mcuTarget->qulPlatform());
|
||||||
k->setValue(Constants::KIT_MCUTARGET_SDKVERSION_KEY,
|
k->setValue(Constants::KIT_MCUTARGET_SDKVERSION_KEY,
|
||||||
McuSupportOptions::supportedQulVersion().toString());
|
McuSupportOptions::supportedQulVersion().toString());
|
||||||
|
k->setValue(Constants::KIT_MCUTARGET_KITVERSION_KEY, KIT_VERSION);
|
||||||
k->setAutoDetected(true);
|
k->setAutoDetected(true);
|
||||||
k->makeSticky();
|
k->makeSticky();
|
||||||
if (mcuTarget->toolChainPackage()->type() == McuToolChainPackage::TypeDesktop)
|
if (mcuTarget->toolChainPackage()->type() == McuToolChainPackage::TypeDesktop)
|
||||||
@@ -613,6 +616,21 @@ QList<ProjectExplorer::Kit *> McuSupportOptions::existingKits(const McuTarget *m
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QList<ProjectExplorer::Kit *> McuSupportOptions::outdatedKits()
|
||||||
|
{
|
||||||
|
return Utils::filtered(ProjectExplorer::KitManager::kits(), [](ProjectExplorer::Kit *kit) {
|
||||||
|
return kit->isAutoDetected()
|
||||||
|
&& !kit->value(Constants::KIT_MCUTARGET_VENDOR_KEY).isNull()
|
||||||
|
&& kit->value(Constants::KIT_MCUTARGET_KITVERSION_KEY) != KIT_VERSION;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
void McuSupportOptions::removeOutdatedKits()
|
||||||
|
{
|
||||||
|
for (auto kit : McuSupportOptions::outdatedKits())
|
||||||
|
ProjectExplorer::KitManager::deregisterKit(kit);
|
||||||
|
}
|
||||||
|
|
||||||
ProjectExplorer::Kit *McuSupportOptions::newKit(const McuTarget *mcuTarget)
|
ProjectExplorer::Kit *McuSupportOptions::newKit(const McuTarget *mcuTarget)
|
||||||
{
|
{
|
||||||
using namespace ProjectExplorer;
|
using namespace ProjectExplorer;
|
||||||
|
@@ -168,6 +168,8 @@ public:
|
|||||||
QString kitName(const McuTarget* mcuTarget) const;
|
QString kitName(const McuTarget* mcuTarget) const;
|
||||||
|
|
||||||
QList<ProjectExplorer::Kit *> existingKits(const McuTarget *mcuTargt);
|
QList<ProjectExplorer::Kit *> existingKits(const McuTarget *mcuTargt);
|
||||||
|
static QList<ProjectExplorer::Kit *> outdatedKits();
|
||||||
|
static void removeOutdatedKits();
|
||||||
ProjectExplorer::Kit *newKit(const McuTarget *mcuTarget);
|
ProjectExplorer::Kit *newKit(const McuTarget *mcuTarget);
|
||||||
void populatePackagesAndTargets();
|
void populatePackagesAndTargets();
|
||||||
static void registerQchFiles();
|
static void registerQchFiles();
|
||||||
|
@@ -231,6 +231,7 @@ void McuSupportOptionsWidget::apply()
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
McuSupportOptions::registerQchFiles();
|
McuSupportOptions::registerQchFiles();
|
||||||
|
McuSupportOptions::removeOutdatedKits();
|
||||||
|
|
||||||
const McuTarget *mcuTarget = currentMcuTarget();
|
const McuTarget *mcuTarget = currentMcuTarget();
|
||||||
if (!mcuTarget)
|
if (!mcuTarget)
|
||||||
|
Reference in New Issue
Block a user