McuSupport: Make some functions in McuSupportOptions static

There is no good enough reason to have them non-static, and upcoming
changes will have it a bit easier with static calls.

Additionally, make McuTarget::m_toolChainPackage const.

Change-Id: I002d5d56606d3b43c4c7a2f63c59e97a81342c69
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Alessandro Portale
2020-04-23 23:30:40 +02:00
parent 5795ce2aae
commit db0d7a2669
3 changed files with 29 additions and 29 deletions

View File

@@ -321,13 +321,13 @@ QVariant McuToolChainPackage::debuggerId() const
} }
McuTarget::McuTarget(const QString &vendor, const QString &platform, McuTarget::McuTarget(const QString &vendor, const QString &platform,
const QVector<McuPackage *> &packages, McuToolChainPackage *toolChainPackage) const QVector<McuPackage *> &packages,
const McuToolChainPackage *toolChainPackage)
: m_vendor(vendor) : m_vendor(vendor)
, m_qulPlatform(platform) , m_qulPlatform(platform)
, m_packages(packages) , m_packages(packages)
, m_toolChainPackage(toolChainPackage) , m_toolChainPackage(toolChainPackage)
{ {
QTC_CHECK(m_toolChainPackage == nullptr || m_packages.contains(m_toolChainPackage));
} }
QString McuTarget::vendor() const QString McuTarget::vendor() const
@@ -340,7 +340,7 @@ QVector<McuPackage *> McuTarget::packages() const
return m_packages; return m_packages;
} }
McuToolChainPackage *McuTarget::toolChainPackage() const const McuToolChainPackage *McuTarget::toolChainPackage() const
{ {
return m_toolChainPackage; return m_toolChainPackage;
} }
@@ -523,7 +523,7 @@ static void setKitDevice(ProjectExplorer::Kit *k, const McuTarget* mcuTarget)
} }
static void setKitEnvironment(ProjectExplorer::Kit *k, const McuTarget* mcuTarget, static void setKitEnvironment(ProjectExplorer::Kit *k, const McuTarget* mcuTarget,
McuPackage *qtForMCUsSdkPackage) const McuPackage *qtForMCUsSdkPackage)
{ {
using namespace ProjectExplorer; using namespace ProjectExplorer;
@@ -537,18 +537,17 @@ static void setKitEnvironment(ProjectExplorer::Kit *k, const McuTarget* mcuTarge
&& !CMakeProjectManager::CMakeToolManager::defaultCMakeTool()->hasFileApi()) && !CMakeProjectManager::CMakeToolManager::defaultCMakeTool()->hasFileApi())
pathAdditions.append(QDir::toNativeSeparators(qtForMCUsSdkPackage->path() + "/bin")); pathAdditions.append(QDir::toNativeSeparators(qtForMCUsSdkPackage->path() + "/bin"));
QVector<McuPackage *> packagesIncludingSdk; auto processPackage = [&pathAdditions, &changes](const McuPackage *package) {
packagesIncludingSdk.reserve(mcuTarget->packages().size() + 1);
packagesIncludingSdk.append(mcuTarget->packages());
packagesIncludingSdk.append(qtForMCUsSdkPackage);
for (auto package : packagesIncludingSdk) {
if (package->addToPath()) if (package->addToPath())
pathAdditions.append(QDir::toNativeSeparators(package->path())); pathAdditions.append(QDir::toNativeSeparators(package->path()));
if (!package->environmentVariableName().isEmpty()) if (!package->environmentVariableName().isEmpty())
changes.append({package->environmentVariableName(), changes.append({package->environmentVariableName(),
QDir::toNativeSeparators(package->path())}); QDir::toNativeSeparators(package->path())});
} };
for (auto package : mcuTarget->packages())
processPackage(package);
processPackage(qtForMCUsSdkPackage);
pathAdditions.append("${Path}"); pathAdditions.append("${Path}");
pathAdditions.append(QDir::toNativeSeparators(Core::ICore::libexecPath() + "/clang/bin")); pathAdditions.append(QDir::toNativeSeparators(Core::ICore::libexecPath() + "/clang/bin"));
const QString path = QLatin1String(Utils::HostOsInfo().isWindowsHost() ? "Path" : "PATH"); const QString path = QLatin1String(Utils::HostOsInfo().isWindowsHost() ? "Path" : "PATH");
@@ -592,7 +591,7 @@ static void setKitQtVersionOptions(ProjectExplorer::Kit *k)
QtSupport::QtKitAspect::setQtVersion(k, nullptr); QtSupport::QtKitAspect::setQtVersion(k, nullptr);
} }
QString McuSupportOptions::kitName(const McuTarget *mcuTarget) const QString McuSupportOptions::kitName(const McuTarget *mcuTarget)
{ {
// TODO: get version from qulSdkPackage and insert into name // TODO: get version from qulSdkPackage and insert into name
const QString colorDepth = mcuTarget->colorDepth() > 0 const QString colorDepth = mcuTarget->colorDepth() > 0
@@ -607,10 +606,10 @@ QString McuSupportOptions::kitName(const McuTarget *mcuTarget) const
.arg(supportedQulVersion().toString(), targetName, colorDepth); .arg(supportedQulVersion().toString(), targetName, colorDepth);
} }
QList<ProjectExplorer::Kit *> McuSupportOptions::existingKits(const McuTarget *mcuTargt) QList<ProjectExplorer::Kit *> McuSupportOptions::existingKits(const McuTarget *mcuTarget)
{ {
using namespace ProjectExplorer; using namespace ProjectExplorer;
const QString mcuTargetKitName = kitName(mcuTargt); const QString mcuTargetKitName = kitName(mcuTarget);
return Utils::filtered(KitManager::kits(), [&mcuTargetKitName](Kit *kit) { return Utils::filtered(KitManager::kits(), [&mcuTargetKitName](Kit *kit) {
return kit->isAutoDetected() && kit->unexpandedDisplayName() == mcuTargetKitName; return kit->isAutoDetected() && kit->unexpandedDisplayName() == mcuTargetKitName;
}); });
@@ -631,19 +630,20 @@ void McuSupportOptions::removeOutdatedKits()
ProjectExplorer::KitManager::deregisterKit(kit); ProjectExplorer::KitManager::deregisterKit(kit);
} }
ProjectExplorer::Kit *McuSupportOptions::newKit(const McuTarget *mcuTarget) ProjectExplorer::Kit *McuSupportOptions::newKit(const McuTarget *mcuTarget,
const McuPackage *qtForMCUsSdk)
{ {
using namespace ProjectExplorer; using namespace ProjectExplorer;
const auto init = [this, mcuTarget](Kit *k) { const auto init = [mcuTarget, qtForMCUsSdk](Kit *k) {
KitGuard kitGuard(k); KitGuard kitGuard(k);
setKitProperties(kitName(mcuTarget), k, mcuTarget); setKitProperties(kitName(mcuTarget), k, mcuTarget);
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, qtForMCUsSdkPackage); setKitEnvironment(k, mcuTarget, qtForMCUsSdk);
setKitCMakeOptions(k, mcuTarget, qtForMCUsSdkPackage->path()); setKitCMakeOptions(k, mcuTarget, qtForMCUsSdk->path());
setKitQtVersionOptions(k); setKitQtVersionOptions(k);
k->setup(); k->setup();

View File

@@ -132,11 +132,11 @@ class McuTarget : public QObject
public: public:
McuTarget(const QString &vendor, const QString &platform, const QVector<McuPackage *> &packages, McuTarget(const QString &vendor, const QString &platform, const QVector<McuPackage *> &packages,
McuToolChainPackage *toolChainPackage); const McuToolChainPackage *toolChainPackage);
QString vendor() const; QString vendor() const;
QVector<McuPackage *> packages() const; QVector<McuPackage *> packages() const;
McuToolChainPackage *toolChainPackage() const; const McuToolChainPackage *toolChainPackage() const;
QString qulPlatform() const; QString qulPlatform() const;
void setColorDepth(int colorDepth); void setColorDepth(int colorDepth);
int colorDepth() const; int colorDepth() const;
@@ -146,7 +146,7 @@ private:
const QString m_vendor; const QString m_vendor;
const QString m_qulPlatform; const QString m_qulPlatform;
const QVector<McuPackage*> m_packages; const QVector<McuPackage*> m_packages;
McuToolChainPackage *m_toolChainPackage; const McuToolChainPackage *m_toolChainPackage;
int m_colorDepth = -1; int m_colorDepth = -1;
}; };
@@ -165,12 +165,12 @@ public:
void setQulDir(const Utils::FilePath &dir); void setQulDir(const Utils::FilePath &dir);
static Utils::FilePath qulDirFromSettings(); static Utils::FilePath qulDirFromSettings();
QString kitName(const McuTarget* mcuTarget) const; static QString kitName(const McuTarget* mcuTarget);
QList<ProjectExplorer::Kit *> existingKits(const McuTarget *mcuTargt); static QList<ProjectExplorer::Kit *> existingKits(const McuTarget *mcuTarget);
static QList<ProjectExplorer::Kit *> outdatedKits(); static QList<ProjectExplorer::Kit *> outdatedKits();
static void removeOutdatedKits(); static void removeOutdatedKits();
ProjectExplorer::Kit *newKit(const McuTarget *mcuTarget); static ProjectExplorer::Kit *newKit(const McuTarget *mcuTarget, const McuPackage *qtForMCUsSdk);
void populatePackagesAndTargets(); void populatePackagesAndTargets();
static void registerQchFiles(); static void registerQchFiles();
static void registerExamples(); static void registerExamples();

View File

@@ -168,7 +168,7 @@ void McuSupportOptionsWidget::updateStatus()
mcuTargetValid ? QString::fromLatin1( mcuTargetValid ? QString::fromLatin1(
"A kit <b>%1</b> for the selected target can be " "A kit <b>%1</b> for the selected target can be "
"generated. Press Apply to generate it.") "generated. Press Apply to generate it.")
.arg(m_options.kitName(mcuTarget)) .arg(McuSupportOptions::kitName(mcuTarget))
: "Provide the package paths in order to create a kit " : "Provide the package paths in order to create a kit "
"for your target."); "for your target.");
} }
@@ -237,9 +237,9 @@ void McuSupportOptionsWidget::apply()
if (!mcuTarget) if (!mcuTarget)
return; return;
for (auto existingKit : m_options.existingKits(mcuTarget)) for (auto existingKit : McuSupportOptions::existingKits(mcuTarget))
ProjectExplorer::KitManager::deregisterKit(existingKit); ProjectExplorer::KitManager::deregisterKit(existingKit);
m_options.newKit(mcuTarget); McuSupportOptions::newKit(mcuTarget, m_options.qtForMCUsSdkPackage);
} }
void McuSupportOptionsWidget::populateMcuTargetsComboBox() void McuSupportOptionsWidget::populateMcuTargetsComboBox()
@@ -247,8 +247,8 @@ 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.mcuTargets, [this](McuTarget *t){ Utils::transform<QStringList>(m_options.mcuTargets, [](McuTarget *t) {
return m_options.kitName(t); return McuSupportOptions::kitName(t);
})); }));
updateStatus(); updateStatus();
} }