forked from qt-creator/qt-creator
McuSupport: Move kit methods out of McuSupportOptions
... and into McuKitManager Task-number: QTCREATORBUG-26890 Change-Id: Ic5ed689458d3ef004ebb42a549c48a6326c2f45d Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
committed by
Christiaan Janssen
parent
01a0f41ed5
commit
c755de0823
@@ -86,10 +86,6 @@ public:
|
|||||||
|
|
||||||
const QString &environmentVariableName() const override;
|
const QString &environmentVariableName() const override;
|
||||||
|
|
||||||
signals:
|
|
||||||
void changed();
|
|
||||||
void statusChanged();
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void updatePath();
|
void updatePath();
|
||||||
void updateStatusUi();
|
void updateStatusUi();
|
||||||
|
@@ -307,13 +307,13 @@ void McuTarget::printPackageProblems() const
|
|||||||
package->updateStatus();
|
package->updateStatus();
|
||||||
if (!package->validStatus())
|
if (!package->validStatus())
|
||||||
printMessage(tr("Error creating kit for target %1, package %2: %3")
|
printMessage(tr("Error creating kit for target %1, package %2: %3")
|
||||||
.arg(McuSupportOptions::kitName(this),
|
.arg(McuKitManager::kitName(this),
|
||||||
package->label(),
|
package->label(),
|
||||||
package->statusText()),
|
package->statusText()),
|
||||||
true);
|
true);
|
||||||
if (package->status() == McuAbstractPackage::Status::ValidPackageMismatchedVersion)
|
if (package->status() == McuAbstractPackage::Status::ValidPackageMismatchedVersion)
|
||||||
printMessage(tr("Warning creating kit for target %1, package %2: %3")
|
printMessage(tr("Warning creating kit for target %1, package %2: %3")
|
||||||
.arg(McuSupportOptions::kitName(this),
|
.arg(McuKitManager::kitName(this),
|
||||||
package->label(),
|
package->label(),
|
||||||
package->statusText()),
|
package->statusText()),
|
||||||
false);
|
false);
|
||||||
@@ -412,9 +412,9 @@ void McuSupportOptions::setQulDir(const FilePath &dir)
|
|||||||
if (qtForMCUsSdkPackage->validStatus())
|
if (qtForMCUsSdkPackage->validStatus())
|
||||||
Sdk::targetsAndPackages(dir, &sdkRepository);
|
Sdk::targetsAndPackages(dir, &sdkRepository);
|
||||||
for (const auto &package : qAsConst(sdkRepository.packages))
|
for (const auto &package : qAsConst(sdkRepository.packages))
|
||||||
connect(package, &McuAbstractPackage::changed, this, &McuSupportOptions::changed);
|
connect(package, &McuAbstractPackage::changed, this, &McuSupportOptions::packagesChanged);
|
||||||
|
|
||||||
emit changed();
|
emit packagesChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
FilePath McuSupportOptions::qulDirFromSettings()
|
FilePath McuSupportOptions::qulDirFromSettings()
|
||||||
@@ -647,7 +647,7 @@ static void setKitCMakeOptions(Kit *k, const McuTarget *mcuTarget, const FilePat
|
|||||||
if (!cMakeToolchainFile.exists()) {
|
if (!cMakeToolchainFile.exists()) {
|
||||||
printMessage(McuTarget::tr(
|
printMessage(McuTarget::tr(
|
||||||
"Warning for target %1: missing CMake toolchain file expected at %2.")
|
"Warning for target %1: missing CMake toolchain file expected at %2.")
|
||||||
.arg(McuSupportOptions::kitName(mcuTarget),
|
.arg(McuKitManager::kitName(mcuTarget),
|
||||||
cMakeToolchainFile.toUserOutput()),
|
cMakeToolchainFile.toUserOutput()),
|
||||||
false);
|
false);
|
||||||
}
|
}
|
||||||
@@ -657,7 +657,7 @@ static void setKitCMakeOptions(Kit *k, const McuTarget *mcuTarget, const FilePat
|
|||||||
config.append(CMakeConfigItem("QUL_GENERATORS", generatorsPath.toString().toUtf8()));
|
config.append(CMakeConfigItem("QUL_GENERATORS", generatorsPath.toString().toUtf8()));
|
||||||
if (!generatorsPath.exists()) {
|
if (!generatorsPath.exists()) {
|
||||||
printMessage(McuTarget::tr("Warning for target %1: missing QulGenerators expected at %2.")
|
printMessage(McuTarget::tr("Warning for target %1: missing QulGenerators expected at %2.")
|
||||||
.arg(McuSupportOptions::kitName(mcuTarget), generatorsPath.toUserOutput()),
|
.arg(McuKitManager::kitName(mcuTarget), generatorsPath.toUserOutput()),
|
||||||
false);
|
false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -687,7 +687,7 @@ static void setKitQtVersionOptions(Kit *k)
|
|||||||
// else: auto-select a Qt version
|
// else: auto-select a Qt version
|
||||||
}
|
}
|
||||||
|
|
||||||
QString McuSupportOptions::kitName(const McuTarget *mcuTarget)
|
QString McuKitManager::kitName(const McuTarget *mcuTarget)
|
||||||
{
|
{
|
||||||
const McuToolChainPackage *tcPkg = mcuTarget->toolChainPackage();
|
const McuToolChainPackage *tcPkg = mcuTarget->toolChainPackage();
|
||||||
const QString compilerName = tcPkg && !tcPkg->isDesktopToolchain()
|
const QString compilerName = tcPkg && !tcPkg->isDesktopToolchain()
|
||||||
@@ -708,7 +708,7 @@ QString McuSupportOptions::kitName(const McuTarget *mcuTarget)
|
|||||||
compilerName);
|
compilerName);
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Kit *> McuSupportOptions::existingKits(const McuTarget *mcuTarget)
|
QList<Kit *> McuKitManager::existingKits(const McuTarget *mcuTarget)
|
||||||
{
|
{
|
||||||
using namespace Constants;
|
using namespace Constants;
|
||||||
return Utils::filtered(KitManager::kits(), [mcuTarget](Kit *kit) {
|
return Utils::filtered(KitManager::kits(), [mcuTarget](Kit *kit) {
|
||||||
@@ -724,23 +724,23 @@ QList<Kit *> McuSupportOptions::existingKits(const McuTarget *mcuTarget)
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Kit *> McuSupportOptions::matchingKits(const McuTarget *mcuTarget,
|
QList<Kit *> McuKitManager::matchingKits(const McuTarget *mcuTarget,
|
||||||
const McuAbstractPackage *qtForMCUsSdkPackage)
|
const McuAbstractPackage *qtForMCUsSdkPackage)
|
||||||
{
|
{
|
||||||
return Utils::filtered(existingKits(mcuTarget), [mcuTarget, qtForMCUsSdkPackage](Kit *kit) {
|
return Utils::filtered(existingKits(mcuTarget), [mcuTarget, qtForMCUsSdkPackage](Kit *kit) {
|
||||||
return kitUpToDate(kit, mcuTarget, qtForMCUsSdkPackage);
|
return kitIsUpToDate(kit, mcuTarget, qtForMCUsSdkPackage);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Kit *> McuSupportOptions::upgradeableKits(const McuTarget *mcuTarget,
|
QList<Kit *> McuKitManager::upgradeableKits(const McuTarget *mcuTarget,
|
||||||
const McuAbstractPackage *qtForMCUsSdkPackage)
|
const McuAbstractPackage *qtForMCUsSdkPackage)
|
||||||
{
|
{
|
||||||
return Utils::filtered(existingKits(mcuTarget), [mcuTarget, qtForMCUsSdkPackage](Kit *kit) {
|
return Utils::filtered(existingKits(mcuTarget), [mcuTarget, qtForMCUsSdkPackage](Kit *kit) {
|
||||||
return !kitUpToDate(kit, mcuTarget, qtForMCUsSdkPackage);
|
return !kitIsUpToDate(kit, mcuTarget, qtForMCUsSdkPackage);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Kit *> McuSupportOptions::kitsWithMismatchedDependencies(const McuTarget *mcuTarget)
|
QList<Kit *> McuKitManager::kitsWithMismatchedDependencies(const McuTarget *mcuTarget)
|
||||||
{
|
{
|
||||||
return Utils::filtered(existingKits(mcuTarget), [mcuTarget](Kit *kit) {
|
return Utils::filtered(existingKits(mcuTarget), [mcuTarget](Kit *kit) {
|
||||||
const auto environment = Utils::NameValueDictionary(
|
const auto environment = Utils::NameValueDictionary(
|
||||||
@@ -754,7 +754,7 @@ QList<Kit *> McuSupportOptions::kitsWithMismatchedDependencies(const McuTarget *
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Kit *> McuSupportOptions::outdatedKits()
|
QList<Kit *> McuKitManager::outdatedKits()
|
||||||
{
|
{
|
||||||
return Utils::filtered(KitManager::kits(), [](Kit *kit) {
|
return Utils::filtered(KitManager::kits(), [](Kit *kit) {
|
||||||
return !kit->value(Constants::KIT_MCUTARGET_VENDOR_KEY).isNull()
|
return !kit->value(Constants::KIT_MCUTARGET_VENDOR_KEY).isNull()
|
||||||
@@ -762,13 +762,13 @@ QList<Kit *> McuSupportOptions::outdatedKits()
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void McuSupportOptions::removeOutdatedKits()
|
void McuKitManager::removeOutdatedKits()
|
||||||
{
|
{
|
||||||
for (auto kit : McuSupportOptions::outdatedKits())
|
for (auto kit : outdatedKits())
|
||||||
KitManager::deregisterKit(kit);
|
KitManager::deregisterKit(kit);
|
||||||
}
|
}
|
||||||
|
|
||||||
Kit *McuSupportOptions::newKit(const McuTarget *mcuTarget, const McuAbstractPackage *qtForMCUsSdk)
|
Kit *McuKitManager::newKit(const McuTarget *mcuTarget, const McuAbstractPackage *qtForMCUsSdk)
|
||||||
{
|
{
|
||||||
const auto init = [mcuTarget, qtForMCUsSdk](Kit *k) {
|
const auto init = [mcuTarget, qtForMCUsSdk](Kit *k) {
|
||||||
KitGuard kitGuard(k);
|
KitGuard kitGuard(k);
|
||||||
@@ -777,7 +777,7 @@ Kit *McuSupportOptions::newKit(const McuTarget *mcuTarget, const McuAbstractPack
|
|||||||
setKitDevice(k, mcuTarget);
|
setKitDevice(k, mcuTarget);
|
||||||
setKitToolchains(k, mcuTarget->toolChainPackage());
|
setKitToolchains(k, mcuTarget->toolChainPackage());
|
||||||
setKitDebugger(k, mcuTarget->toolChainPackage());
|
setKitDebugger(k, mcuTarget->toolChainPackage());
|
||||||
setKitEnvironment(k, mcuTarget, qtForMCUsSdk);
|
McuSupportOptions::setKitEnvironment(k, mcuTarget, qtForMCUsSdk);
|
||||||
setKitDependencies(k, mcuTarget, qtForMCUsSdk);
|
setKitDependencies(k, mcuTarget, qtForMCUsSdk);
|
||||||
setKitCMakeOptions(k, mcuTarget, qtForMCUsSdk->path());
|
setKitCMakeOptions(k, mcuTarget, qtForMCUsSdk->path());
|
||||||
setKitQtVersionOptions(k);
|
setKitQtVersionOptions(k);
|
||||||
@@ -799,7 +799,7 @@ void printMessage(const QString &message, bool important)
|
|||||||
Core::MessageManager::writeSilently(displayMessage);
|
Core::MessageManager::writeSilently(displayMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
QVersionNumber McuSupportOptions::kitQulVersion(const Kit *kit)
|
QVersionNumber McuKitManager::kitQulVersion(const Kit *kit)
|
||||||
{
|
{
|
||||||
return QVersionNumber::fromString(
|
return QVersionNumber::fromString(
|
||||||
kit->value(McuSupport::Constants::KIT_MCUTARGET_SDKVERSION_KEY).toString());
|
kit->value(McuSupport::Constants::KIT_MCUTARGET_SDKVERSION_KEY).toString());
|
||||||
@@ -814,7 +814,7 @@ static FilePath kitDependencyPath(const Kit *kit, const QString &variableName)
|
|||||||
return FilePath();
|
return FilePath();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool McuSupportOptions::kitUpToDate(const Kit *kit,
|
bool McuKitManager::kitIsUpToDate(const Kit *kit,
|
||||||
const McuTarget *mcuTarget,
|
const McuTarget *mcuTarget,
|
||||||
const McuAbstractPackage *qtForMCUsSdkPackage)
|
const McuAbstractPackage *qtForMCUsSdkPackage)
|
||||||
{
|
{
|
||||||
@@ -828,7 +828,7 @@ void McuSupportOptions::deletePackagesAndTargets()
|
|||||||
sdkRepository.deletePackagesAndTargets();
|
sdkRepository.deletePackagesAndTargets();
|
||||||
}
|
}
|
||||||
|
|
||||||
McuSupportOptions::UpgradeOption McuSupportOptions::askForKitUpgrades()
|
McuKitManager::UpgradeOption McuKitManager::askForKitUpgrades()
|
||||||
{
|
{
|
||||||
QMessageBox upgradePopup(Core::ICore::dialogParent());
|
QMessageBox upgradePopup(Core::ICore::dialogParent());
|
||||||
upgradePopup.setStandardButtons(QMessageBox::Cancel);
|
upgradePopup.setStandardButtons(QMessageBox::Cancel);
|
||||||
@@ -841,15 +841,15 @@ McuSupportOptions::UpgradeOption McuSupportOptions::askForKitUpgrades()
|
|||||||
upgradePopup.exec();
|
upgradePopup.exec();
|
||||||
|
|
||||||
if (upgradePopup.clickedButton() == keepButton)
|
if (upgradePopup.clickedButton() == keepButton)
|
||||||
return Keep;
|
return UpgradeOption::Keep;
|
||||||
|
|
||||||
if (upgradePopup.clickedButton() == replaceButton)
|
if (upgradePopup.clickedButton() == replaceButton)
|
||||||
return Replace;
|
return UpgradeOption::Replace;
|
||||||
|
|
||||||
return Ignore;
|
return UpgradeOption::Ignore;
|
||||||
}
|
}
|
||||||
|
|
||||||
void McuSupportOptions::createAutomaticKits()
|
void McuKitManager::createAutomaticKits()
|
||||||
{
|
{
|
||||||
auto qtForMCUsPackage = Sdk::createQtForMCUsPackage();
|
auto qtForMCUsPackage = Sdk::createQtForMCUsPackage();
|
||||||
|
|
||||||
@@ -929,15 +929,15 @@ void McuSupportOptions::checkUpgradeableKits()
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (Utils::anyOf(sdkRepository.mcuTargets, [this](const McuTarget *target) {
|
if (Utils::anyOf(sdkRepository.mcuTargets, [this](const McuTarget *target) {
|
||||||
return !upgradeableKits(target, this->qtForMCUsSdkPackage).empty()
|
return !McuKitManager::upgradeableKits(target, this->qtForMCUsSdkPackage).empty()
|
||||||
&& matchingKits(target, this->qtForMCUsSdkPackage).empty();
|
&& McuKitManager::matchingKits(target, this->qtForMCUsSdkPackage).empty();
|
||||||
}))
|
}))
|
||||||
upgradeKits(askForKitUpgrades());
|
McuKitManager::upgradeKitsByCreatingNewPackage(McuKitManager::askForKitUpgrades());
|
||||||
}
|
}
|
||||||
|
|
||||||
void McuSupportOptions::upgradeKits(UpgradeOption upgradeOption)
|
void McuKitManager::upgradeKitsByCreatingNewPackage(UpgradeOption upgradeOption)
|
||||||
{
|
{
|
||||||
if (upgradeOption == Ignore)
|
if (upgradeOption == UpgradeOption::Ignore)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
auto qtForMCUsPackage = Sdk::createQtForMCUsPackage();
|
auto qtForMCUsPackage = Sdk::createQtForMCUsPackage();
|
||||||
@@ -947,15 +947,16 @@ void McuSupportOptions::upgradeKits(UpgradeOption upgradeOption)
|
|||||||
Sdk::targetsAndPackages(dir, &repo);
|
Sdk::targetsAndPackages(dir, &repo);
|
||||||
|
|
||||||
for (const auto &target : qAsConst(repo.mcuTargets)) {
|
for (const auto &target : qAsConst(repo.mcuTargets)) {
|
||||||
if (!matchingKits(target, qtForMCUsPackage).empty())
|
if (!McuKitManager::matchingKits(target, qtForMCUsPackage).empty())
|
||||||
// already up-to-date
|
// already up-to-date
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
const auto kits = upgradeableKits(target, qtForMCUsPackage);
|
const auto kits = McuKitManager::upgradeableKits(target, qtForMCUsPackage);
|
||||||
if (!kits.empty()) {
|
if (!kits.empty()) {
|
||||||
if (upgradeOption == Replace)
|
if (upgradeOption == UpgradeOption::Replace) {
|
||||||
for (auto existingKit : kits)
|
for (auto existingKit : kits)
|
||||||
KitManager::deregisterKit(existingKit);
|
KitManager::deregisterKit(existingKit);
|
||||||
|
}
|
||||||
|
|
||||||
if (target->isValid())
|
if (target->isValid())
|
||||||
newKit(target, qtForMCUsPackage);
|
newKit(target, qtForMCUsPackage);
|
||||||
@@ -967,16 +968,16 @@ void McuSupportOptions::upgradeKits(UpgradeOption upgradeOption)
|
|||||||
delete qtForMCUsPackage;
|
delete qtForMCUsPackage;
|
||||||
}
|
}
|
||||||
|
|
||||||
void McuSupportOptions::upgradeKitInPlace(ProjectExplorer::Kit *kit,
|
void McuKitManager::upgradeKitInPlace(ProjectExplorer::Kit *kit,
|
||||||
const McuTarget *mcuTarget,
|
const McuTarget *mcuTarget,
|
||||||
const McuAbstractPackage *qtForMCUsSdk)
|
const McuAbstractPackage *qtForMCUsSdk)
|
||||||
{
|
{
|
||||||
setKitProperties(kitName(mcuTarget), kit, mcuTarget, qtForMCUsSdk->path());
|
setKitProperties(kitName(mcuTarget), kit, mcuTarget, qtForMCUsSdk->path());
|
||||||
setKitEnvironment(kit, mcuTarget, qtForMCUsSdk);
|
McuSupportOptions::setKitEnvironment(kit, mcuTarget, qtForMCUsSdk);
|
||||||
setKitDependencies(kit, mcuTarget, qtForMCUsSdk);
|
setKitDependencies(kit, mcuTarget, qtForMCUsSdk);
|
||||||
}
|
}
|
||||||
|
|
||||||
void McuSupportOptions::fixKitsDependencies()
|
void McuKitManager::fixKitsDependencies()
|
||||||
{
|
{
|
||||||
auto qtForMCUsPackage = Sdk::createQtForMCUsPackage();
|
auto qtForMCUsPackage = Sdk::createQtForMCUsPackage();
|
||||||
|
|
||||||
@@ -986,7 +987,7 @@ void McuSupportOptions::fixKitsDependencies()
|
|||||||
for (const auto &target : qAsConst(repo.mcuTargets)) {
|
for (const auto &target : qAsConst(repo.mcuTargets)) {
|
||||||
if (target->isValid()) {
|
if (target->isValid()) {
|
||||||
for (auto *kit : kitsWithMismatchedDependencies(target)) {
|
for (auto *kit : kitsWithMismatchedDependencies(target)) {
|
||||||
updateKitEnvironment(kit, target);
|
McuSupportOptions::updateKitEnvironment(kit, target);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -998,7 +999,7 @@ void McuSupportOptions::fixKitsDependencies()
|
|||||||
/**
|
/**
|
||||||
* @brief Fix/update existing kits if needed
|
* @brief Fix/update existing kits if needed
|
||||||
*/
|
*/
|
||||||
void McuSupportOptions::fixExistingKits()
|
void McuKitManager::fixExistingKits()
|
||||||
{
|
{
|
||||||
for (Kit *kit : KitManager::kits()) {
|
for (Kit *kit : KitManager::kits()) {
|
||||||
if (!kit->hasValue(Constants::KIT_MCUTARGET_KITVERSION_KEY))
|
if (!kit->hasValue(Constants::KIT_MCUTARGET_KITVERSION_KEY))
|
||||||
|
@@ -26,6 +26,9 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <utils/environmentfwd.h>
|
#include <utils/environmentfwd.h>
|
||||||
|
#include "mcusupport_global.h"
|
||||||
|
|
||||||
|
#include <QCoreApplication>
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QVector>
|
#include <QVector>
|
||||||
#include <QVersionNumber>
|
#include <QVersionNumber>
|
||||||
@@ -106,8 +109,6 @@ class McuSupportOptions : public QObject
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
enum UpgradeOption { Ignore, Keep, Replace };
|
|
||||||
|
|
||||||
explicit McuSupportOptions(QObject *parent = nullptr);
|
explicit McuSupportOptions(QObject *parent = nullptr);
|
||||||
~McuSupportOptions() override;
|
~McuSupportOptions() override;
|
||||||
|
|
||||||
@@ -122,43 +123,60 @@ public:
|
|||||||
static void remapQul2xCmakeVars(ProjectExplorer::Kit *, const Utils::EnvironmentItems &);
|
static void remapQul2xCmakeVars(ProjectExplorer::Kit *, const Utils::EnvironmentItems &);
|
||||||
static Utils::FilePath qulDirFromSettings();
|
static Utils::FilePath qulDirFromSettings();
|
||||||
|
|
||||||
static QString kitName(const McuTarget *mcuTarget);
|
static void registerQchFiles();
|
||||||
|
static void registerExamples();
|
||||||
|
|
||||||
|
static const QVersionNumber &minimalQulVersion();
|
||||||
|
|
||||||
|
void checkUpgradeableKits();
|
||||||
|
void populatePackagesAndTargets();
|
||||||
|
private:
|
||||||
|
void deletePackagesAndTargets();
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void packagesChanged();
|
||||||
|
};
|
||||||
|
|
||||||
|
class McuKitManager
|
||||||
|
{
|
||||||
|
Q_DECLARE_TR_FUNCTIONS(McuSupport::Internal::McuKitManager)
|
||||||
|
|
||||||
|
public:
|
||||||
|
enum class UpgradeOption {
|
||||||
|
Ignore,
|
||||||
|
Keep,
|
||||||
|
Replace
|
||||||
|
};
|
||||||
|
|
||||||
|
// Creating kits:
|
||||||
|
static ProjectExplorer::Kit *newKit(const McuTarget *mcuTarget, const McuAbstractPackage *qtForMCUsSdk);
|
||||||
|
static void createAutomaticKits();
|
||||||
|
|
||||||
|
// Querying the kits:
|
||||||
static QList<ProjectExplorer::Kit *> existingKits(const McuTarget *mcuTarget);
|
static QList<ProjectExplorer::Kit *> existingKits(const McuTarget *mcuTarget);
|
||||||
static QList<ProjectExplorer::Kit *> matchingKits(const McuTarget *mcuTarget,
|
static QList<ProjectExplorer::Kit *> matchingKits(const McuTarget *mcuTarget,
|
||||||
const McuAbstractPackage *qtForMCUsSdkPackage);
|
const McuAbstractPackage *qtForMCUsSdkPackage);
|
||||||
static QList<ProjectExplorer::Kit *> upgradeableKits(
|
static QList<ProjectExplorer::Kit *> upgradeableKits(
|
||||||
const McuTarget *mcuTarget, const McuAbstractPackage *qtForMCUsSdkPackage);
|
const McuTarget *mcuTarget, const McuAbstractPackage *qtForMCUsSdkPackage);
|
||||||
static QList<ProjectExplorer::Kit *> kitsWithMismatchedDependencies(const McuTarget *mcuTarget);
|
static QList<ProjectExplorer::Kit *> kitsWithMismatchedDependencies(const McuTarget *mcuTarget);
|
||||||
|
|
||||||
|
// Upgrading kits:
|
||||||
|
static UpgradeOption askForKitUpgrades();
|
||||||
|
static void upgradeKitsByCreatingNewPackage(UpgradeOption upgradeOption);
|
||||||
|
static void upgradeKitInPlace(ProjectExplorer::Kit *kit, const McuTarget *mcuTarget, const McuAbstractPackage *qtForMCUsSdk);
|
||||||
|
|
||||||
|
// Fixing kits:
|
||||||
|
static void fixKitsDependencies();
|
||||||
|
static void fixExistingKits();
|
||||||
|
|
||||||
|
// Outdated kits:
|
||||||
static QList<ProjectExplorer::Kit *> outdatedKits();
|
static QList<ProjectExplorer::Kit *> outdatedKits();
|
||||||
static void removeOutdatedKits();
|
static void removeOutdatedKits();
|
||||||
static ProjectExplorer::Kit *newKit(const McuTarget *mcuTarget,
|
|
||||||
const McuAbstractPackage *qtForMCUsSdk);
|
|
||||||
static void createAutomaticKits();
|
|
||||||
static UpgradeOption askForKitUpgrades();
|
|
||||||
static void upgradeKits(UpgradeOption upgradeOption);
|
|
||||||
static void upgradeKitInPlace(ProjectExplorer::Kit *kit,
|
|
||||||
const McuTarget *mcuTarget,
|
|
||||||
const McuAbstractPackage *qtForMCUsSdk);
|
|
||||||
static void fixKitsDependencies();
|
|
||||||
void checkUpgradeableKits();
|
|
||||||
static void fixExistingKits();
|
|
||||||
void populatePackagesAndTargets();
|
|
||||||
static void registerQchFiles();
|
|
||||||
static void registerExamples();
|
|
||||||
|
|
||||||
static const QVersionNumber &minimalQulVersion();
|
|
||||||
|
|
||||||
|
// Querying kits:
|
||||||
|
static QString kitName(const McuTarget* mcuTarget);
|
||||||
static QVersionNumber kitQulVersion(const ProjectExplorer::Kit *kit);
|
static QVersionNumber kitQulVersion(const ProjectExplorer::Kit *kit);
|
||||||
static bool kitUpToDate(const ProjectExplorer::Kit *kit,
|
static bool kitIsUpToDate(const ProjectExplorer::Kit *kit, const McuTarget *mcuTarget, const McuAbstractPackage *qtForMCUsSdkPackage);
|
||||||
const McuTarget *mcuTarget,
|
|
||||||
const McuAbstractPackage *qtForMCUsSdkPackage);
|
|
||||||
|
|
||||||
private:
|
|
||||||
void deletePackagesAndTargets();
|
|
||||||
|
|
||||||
signals:
|
|
||||||
void changed();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
@@ -160,16 +160,15 @@ McuSupportOptionsWidget::McuSupportOptionsWidget()
|
|||||||
m_kitCreationPushButton = new QPushButton(tr("Create Kit"));
|
m_kitCreationPushButton = new QPushButton(tr("Create Kit"));
|
||||||
m_kitCreationPushButton->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
|
m_kitCreationPushButton->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
|
||||||
connect(m_kitCreationPushButton, &QPushButton::clicked, this, [this] {
|
connect(m_kitCreationPushButton, &QPushButton::clicked, this, [this] {
|
||||||
McuSupportOptions::newKit(currentMcuTarget(), m_options.qtForMCUsSdkPackage);
|
McuKitManager::newKit(currentMcuTarget(), m_options.qtForMCUsSdkPackage);
|
||||||
McuSupportOptions::registerQchFiles();
|
McuSupportOptions::registerQchFiles();
|
||||||
updateStatus();
|
updateStatus();
|
||||||
});
|
});
|
||||||
m_kitUpdatePushButton = new QPushButton(tr("Update Kit"));
|
m_kitUpdatePushButton = new QPushButton(tr("Update Kit"));
|
||||||
m_kitUpdatePushButton->setSizePolicy(m_kitCreationPushButton->sizePolicy());
|
m_kitUpdatePushButton->setSizePolicy(m_kitCreationPushButton->sizePolicy());
|
||||||
connect(m_kitUpdatePushButton, &QPushButton::clicked, this, [this] {
|
connect(m_kitUpdatePushButton, &QPushButton::clicked, this, [this] {
|
||||||
for (auto kit : McuSupportOptions::upgradeableKits(currentMcuTarget(),
|
for (auto kit: McuKitManager::upgradeableKits(currentMcuTarget(), m_options.qtForMCUsSdkPackage))
|
||||||
m_options.qtForMCUsSdkPackage))
|
McuKitManager::upgradeKitInPlace(kit, currentMcuTarget(), m_options.qtForMCUsSdkPackage);
|
||||||
m_options.upgradeKitInPlace(kit, currentMcuTarget(), m_options.qtForMCUsSdkPackage);
|
|
||||||
updateStatus();
|
updateStatus();
|
||||||
});
|
});
|
||||||
vLayout->addWidget(m_kitCreationPushButton);
|
vLayout->addWidget(m_kitCreationPushButton);
|
||||||
@@ -178,7 +177,10 @@ McuSupportOptionsWidget::McuSupportOptionsWidget()
|
|||||||
|
|
||||||
mainLayout->addStretch();
|
mainLayout->addStretch();
|
||||||
|
|
||||||
connect(&m_options, &McuSupportOptions::changed, this, &McuSupportOptionsWidget::updateStatus);
|
connect(&m_options,
|
||||||
|
&McuSupportOptions::packagesChanged,
|
||||||
|
this,
|
||||||
|
&McuSupportOptionsWidget::updateStatus);
|
||||||
|
|
||||||
showMcuTargetPackages();
|
showMcuTargetPackages();
|
||||||
}
|
}
|
||||||
@@ -216,13 +218,11 @@ void McuSupportOptionsWidget::updateStatus()
|
|||||||
m_kitCreationPushButton->setVisible(mcuTargetValid);
|
m_kitCreationPushButton->setVisible(mcuTargetValid);
|
||||||
m_kitUpdatePushButton->setVisible(mcuTargetValid);
|
m_kitUpdatePushButton->setVisible(mcuTargetValid);
|
||||||
if (mcuTargetValid) {
|
if (mcuTargetValid) {
|
||||||
const bool hasMatchingKits
|
const bool hasMatchingKits = !McuKitManager::matchingKits(
|
||||||
= !McuSupportOptions::matchingKits(mcuTarget, m_options.qtForMCUsSdkPackage)
|
mcuTarget, m_options.qtForMCUsSdkPackage).isEmpty();
|
||||||
.isEmpty();
|
const bool hasUpgradeableKits = !hasMatchingKits &&
|
||||||
const bool hasUpgradeableKits
|
!McuKitManager::upgradeableKits(
|
||||||
= !hasMatchingKits
|
mcuTarget, m_options.qtForMCUsSdkPackage).isEmpty();
|
||||||
&& !McuSupportOptions::upgradeableKits(mcuTarget, m_options.qtForMCUsSdkPackage)
|
|
||||||
.isEmpty();
|
|
||||||
|
|
||||||
m_kitCreationPushButton->setEnabled(!hasMatchingKits);
|
m_kitCreationPushButton->setEnabled(!hasMatchingKits);
|
||||||
m_kitUpdatePushButton->setEnabled(hasUpgradeableKits);
|
m_kitUpdatePushButton->setEnabled(hasUpgradeableKits);
|
||||||
@@ -305,7 +305,7 @@ void McuSupportOptionsWidget::apply()
|
|||||||
|
|
||||||
if (pathsChanged) {
|
if (pathsChanged) {
|
||||||
m_options.checkUpgradeableKits();
|
m_options.checkUpgradeableKits();
|
||||||
m_options.fixKitsDependencies();
|
McuKitManager::fixKitsDependencies();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -314,8 +314,9 @@ void McuSupportOptionsWidget::populateMcuTargetsComboBox()
|
|||||||
m_options.populatePackagesAndTargets();
|
m_options.populatePackagesAndTargets();
|
||||||
m_mcuTargetsComboBox->clear();
|
m_mcuTargetsComboBox->clear();
|
||||||
m_mcuTargetsComboBox->addItems(
|
m_mcuTargetsComboBox->addItems(
|
||||||
Utils::transform<QStringList>(m_options.sdkRepository.mcuTargets,
|
Utils::transform<QStringList>(m_options.sdkRepository.mcuTargets, [](McuTarget *t) {
|
||||||
[](McuTarget *t) { return McuSupportOptions::kitName(t); }));
|
return McuKitManager::kitName(t);
|
||||||
|
}));
|
||||||
updateStatus();
|
updateStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -93,9 +93,9 @@ void McuSupportPlugin::extensionsInitialized()
|
|||||||
ProjectExplorer::DeviceManager::instance()->addDevice(McuSupportDevice::create());
|
ProjectExplorer::DeviceManager::instance()->addDevice(McuSupportDevice::create());
|
||||||
|
|
||||||
connect(KitManager::instance(), &KitManager::kitsLoaded, []() {
|
connect(KitManager::instance(), &KitManager::kitsLoaded, []() {
|
||||||
McuSupportOptions::removeOutdatedKits();
|
McuKitManager::removeOutdatedKits();
|
||||||
McuSupportOptions::createAutomaticKits();
|
McuKitManager::createAutomaticKits();
|
||||||
McuSupportOptions::fixExistingKits();
|
McuKitManager::fixExistingKits();
|
||||||
McuSupportPlugin::askUserAboutMcuSupportKitsSetup();
|
McuSupportPlugin::askUserAboutMcuSupportKitsSetup();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -106,7 +106,7 @@ void McuSupportPlugin::askUserAboutMcuSupportKitsSetup()
|
|||||||
|
|
||||||
if (!ICore::infoBar()->canInfoBeAdded(setupMcuSupportKits)
|
if (!ICore::infoBar()->canInfoBeAdded(setupMcuSupportKits)
|
||||||
|| McuSupportOptions::qulDirFromSettings().isEmpty()
|
|| McuSupportOptions::qulDirFromSettings().isEmpty()
|
||||||
|| !McuSupportOptions::existingKits(nullptr).isEmpty())
|
|| !McuKitManager::existingKits(nullptr).isEmpty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Utils::InfoBarEntry info(setupMcuSupportKits,
|
Utils::InfoBarEntry info(setupMcuSupportKits,
|
||||||
@@ -130,18 +130,19 @@ void McuSupportPlugin::askUserAboutMcuSupportKitsUpgrade()
|
|||||||
Utils::InfoBarEntry info(upgradeMcuSupportKits,
|
Utils::InfoBarEntry info(upgradeMcuSupportKits,
|
||||||
tr("New version of Qt for MCUs detected. Upgrade existing Kits?"),
|
tr("New version of Qt for MCUs detected. Upgrade existing Kits?"),
|
||||||
Utils::InfoBarEntry::GlobalSuppression::Enabled);
|
Utils::InfoBarEntry::GlobalSuppression::Enabled);
|
||||||
|
static McuKitManager::UpgradeOption selectedOption = McuKitManager::UpgradeOption::Keep;
|
||||||
|
|
||||||
static McuSupportOptions::UpgradeOption selectedOption;
|
|
||||||
const QStringList options = { tr("Create new kits"), tr("Replace existing kits") };
|
const QStringList options = { tr("Create new kits"), tr("Replace existing kits") };
|
||||||
selectedOption = McuSupportOptions::UpgradeOption::Keep;
|
|
||||||
info.setComboInfo(options, [options](const QString &selected) {
|
info.setComboInfo(options, [options](const QString &selected) {
|
||||||
selectedOption = options.indexOf(selected) == 0 ? McuSupportOptions::UpgradeOption::Keep
|
selectedOption = options.indexOf(selected) == 0 ? McuKitManager::UpgradeOption::Keep
|
||||||
: McuSupportOptions::UpgradeOption::Replace;
|
: McuKitManager::UpgradeOption::Replace;
|
||||||
});
|
});
|
||||||
|
|
||||||
info.addCustomButton(tr("Proceed"), [upgradeMcuSupportKits] {
|
info.addCustomButton(tr("Proceed"), [upgradeMcuSupportKits] {
|
||||||
ICore::infoBar()->removeInfo(upgradeMcuSupportKits);
|
ICore::infoBar()->removeInfo(upgradeMcuSupportKits);
|
||||||
QTimer::singleShot(0, []() { McuSupportOptions::upgradeKits(selectedOption); });
|
QTimer::singleShot(0, []() {
|
||||||
|
McuKitManager::upgradeKitsByCreatingNewPackage(selectedOption);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
ICore::infoBar()->addInfo(info);
|
ICore::infoBar()->addInfo(info);
|
||||||
|
@@ -791,7 +791,7 @@ void targetsAndPackages(const Utils::FilePath &dir, McuSdkRepository *repo)
|
|||||||
std::sort(repo->mcuTargets.begin(),
|
std::sort(repo->mcuTargets.begin(),
|
||||||
repo->mcuTargets.end(),
|
repo->mcuTargets.end(),
|
||||||
[](const McuTarget *lhs, const McuTarget *rhs) {
|
[](const McuTarget *lhs, const McuTarget *rhs) {
|
||||||
return McuSupportOptions::kitName(lhs) < McuSupportOptions::kitName(rhs);
|
return McuKitManager::kitName(lhs) < McuKitManager::kitName(rhs);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -65,7 +65,7 @@ void McuSupportTest::test_addNewKit()
|
|||||||
|
|
||||||
QSignalSpy kitAddedSpy(&kitManager, &KitManager::kitAdded);
|
QSignalSpy kitAddedSpy(&kitManager, &KitManager::kitAdded);
|
||||||
|
|
||||||
auto *newKit{McuSupportOptions::newKit(&mcuTarget, &freeRtosPackage)};
|
auto *newKit{McuKitManager::newKit(&mcuTarget, &freeRtosPackage)};
|
||||||
QVERIFY(newKit != nullptr);
|
QVERIFY(newKit != nullptr);
|
||||||
|
|
||||||
QCOMPARE(kitAddedSpy.count(), 1);
|
QCOMPARE(kitAddedSpy.count(), 1);
|
||||||
|
Reference in New Issue
Block a user