forked from qt-creator/qt-creator
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:
@@ -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();
|
||||||
|
@@ -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();
|
||||||
|
@@ -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();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user