forked from qt-creator/qt-creator
McuSupport: Some code cosmetics
Namespaces, spacing, connect object guards, ... Change-Id: I64bcab14f52d990adab938ebcdef535f1c09b061 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -58,6 +58,9 @@
|
|||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
#include <QVariant>
|
#include <QVariant>
|
||||||
|
|
||||||
|
using namespace ProjectExplorer;
|
||||||
|
using namespace Utils;
|
||||||
|
|
||||||
namespace McuSupport {
|
namespace McuSupport {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
@@ -72,14 +75,14 @@ static QString packagePathFromSettings(const QString &settingsKey,
|
|||||||
const QString path = s->value(QLatin1String(Constants::SETTINGS_KEY_PACKAGE_PREFIX)
|
const QString path = s->value(QLatin1String(Constants::SETTINGS_KEY_PACKAGE_PREFIX)
|
||||||
+ settingsKey, defaultPath).toString();
|
+ settingsKey, defaultPath).toString();
|
||||||
s->endGroup();
|
s->endGroup();
|
||||||
return Utils::FilePath::fromFileInfo(path).toString();
|
return FilePath::fromFileInfo(path).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool kitNeedsQtVersion()
|
static bool kitNeedsQtVersion()
|
||||||
{
|
{
|
||||||
// Only on Windows, Qt is linked into the distributed qul Desktop libs. Also, the host tools
|
// Only on Windows, Qt is linked into the distributed qul Desktop libs. Also, the host tools
|
||||||
// are missing the Qt runtime libraries on non-Windows.
|
// are missing the Qt runtime libraries on non-Windows.
|
||||||
return !Utils::HostOsInfo::isWindowsHost();
|
return !HostOsInfo::isWindowsHost();
|
||||||
}
|
}
|
||||||
|
|
||||||
McuPackage::McuPackage(const QString &label, const QString &defaultPath,
|
McuPackage::McuPackage(const QString &label, const QString &defaultPath,
|
||||||
@@ -118,23 +121,23 @@ QWidget *McuPackage::widget()
|
|||||||
return m_widget;
|
return m_widget;
|
||||||
|
|
||||||
m_widget = new QWidget;
|
m_widget = new QWidget;
|
||||||
m_fileChooser = new Utils::PathChooser;
|
m_fileChooser = new PathChooser;
|
||||||
m_fileChooser->lineEdit()->setButtonIcon(Utils::FancyLineEdit::Right,
|
m_fileChooser->lineEdit()->setButtonIcon(FancyLineEdit::Right,
|
||||||
Utils::Icons::RESET.icon());
|
Icons::RESET.icon());
|
||||||
m_fileChooser->lineEdit()->setButtonVisible(Utils::FancyLineEdit::Right, true);
|
m_fileChooser->lineEdit()->setButtonVisible(FancyLineEdit::Right, true);
|
||||||
connect(m_fileChooser->lineEdit(), &Utils::FancyLineEdit::rightButtonClicked, [&](){
|
connect(m_fileChooser->lineEdit(), &FancyLineEdit::rightButtonClicked, this, [&] {
|
||||||
m_fileChooser->setPath(m_defaultPath);
|
m_fileChooser->setPath(m_defaultPath);
|
||||||
});
|
});
|
||||||
|
|
||||||
auto layout = new QGridLayout(m_widget);
|
auto layout = new QGridLayout(m_widget);
|
||||||
layout->setContentsMargins(0, 0, 0, 0);
|
layout->setContentsMargins(0, 0, 0, 0);
|
||||||
m_infoLabel = new Utils::InfoLabel();
|
m_infoLabel = new InfoLabel();
|
||||||
|
|
||||||
if (!m_downloadUrl.isEmpty()) {
|
if (!m_downloadUrl.isEmpty()) {
|
||||||
auto downLoadButton = new QToolButton;
|
auto downLoadButton = new QToolButton;
|
||||||
downLoadButton->setIcon(Utils::Icons::ONLINE.icon());
|
downLoadButton->setIcon(Icons::ONLINE.icon());
|
||||||
downLoadButton->setToolTip(tr("Download from \"%1\"").arg(m_downloadUrl));
|
downLoadButton->setToolTip(tr("Download from \"%1\"").arg(m_downloadUrl));
|
||||||
QObject::connect(downLoadButton, &QToolButton::pressed, [this]{
|
QObject::connect(downLoadButton, &QToolButton::pressed, this, [this] {
|
||||||
QDesktopServices::openUrl(m_downloadUrl);
|
QDesktopServices::openUrl(m_downloadUrl);
|
||||||
});
|
});
|
||||||
layout->addWidget(downLoadButton, 0, 2);
|
layout->addWidget(downLoadButton, 0, 2);
|
||||||
@@ -145,8 +148,7 @@ QWidget *McuPackage::widget()
|
|||||||
|
|
||||||
m_fileChooser->setPath(m_path);
|
m_fileChooser->setPath(m_path);
|
||||||
|
|
||||||
QObject::connect(m_fileChooser, &Utils::PathChooser::pathChanged,
|
QObject::connect(m_fileChooser, &PathChooser::pathChanged, this, [this] {
|
||||||
[this](){
|
|
||||||
updateStatus();
|
updateStatus();
|
||||||
emit changed();
|
emit changed();
|
||||||
});
|
});
|
||||||
@@ -205,15 +207,14 @@ void McuPackage::updateStatus()
|
|||||||
{
|
{
|
||||||
m_path = m_fileChooser->rawPath();
|
m_path = m_fileChooser->rawPath();
|
||||||
const bool validPath = m_fileChooser->isValid();
|
const bool validPath = m_fileChooser->isValid();
|
||||||
const Utils::FilePath detectionPath = Utils::FilePath::fromString(
|
const FilePath detectionPath = FilePath::fromString(
|
||||||
m_fileChooser->filePath().toString() + "/" + m_detectionPath);
|
m_fileChooser->filePath().toString() + "/" + m_detectionPath);
|
||||||
const QString displayDetectionPath = Utils::FilePath::fromString(m_detectionPath).toUserOutput();
|
const QString displayDetectionPath = FilePath::fromString(m_detectionPath).toUserOutput();
|
||||||
const bool validPackage = m_detectionPath.isEmpty() || detectionPath.exists();
|
const bool validPackage = m_detectionPath.isEmpty() || detectionPath.exists();
|
||||||
|
|
||||||
m_status = validPath ? (validPackage ? ValidPackage : ValidPathInvalidPackage) : InvalidPath;
|
m_status = validPath ? (validPackage ? ValidPackage : ValidPathInvalidPackage) : InvalidPath;
|
||||||
|
|
||||||
m_infoLabel->setType(m_status == ValidPackage ? Utils::InfoLabel::Ok
|
m_infoLabel->setType(m_status == ValidPackage ? InfoLabel::Ok : InfoLabel::NotOk);
|
||||||
: Utils::InfoLabel::NotOk);
|
|
||||||
|
|
||||||
QString statusText;
|
QString statusText;
|
||||||
switch (m_status) {
|
switch (m_status) {
|
||||||
@@ -230,8 +231,7 @@ void McuPackage::updateStatus()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
m_infoLabel->setText(statusText);
|
m_infoLabel->setText(statusText);
|
||||||
m_fileChooser->lineEdit()->button(Utils::FancyLineEdit::Right)->setEnabled(
|
m_fileChooser->lineEdit()->button(FancyLineEdit::Right)->setEnabled(m_path != m_defaultPath);
|
||||||
m_path != m_defaultPath);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
McuToolChainPackage::McuToolChainPackage(const QString &label, const QString &defaultPath,
|
McuToolChainPackage::McuToolChainPackage(const QString &label, const QString &defaultPath,
|
||||||
@@ -247,10 +247,8 @@ McuToolChainPackage::Type McuToolChainPackage::type() const
|
|||||||
return m_type;
|
return m_type;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ProjectExplorer::ToolChain *desktopToolChain(Utils::Id language)
|
static ToolChain *desktopToolChain(Id language)
|
||||||
{
|
{
|
||||||
using namespace ProjectExplorer;
|
|
||||||
|
|
||||||
ToolChain *toolChain = ToolChainManager::toolChain([language](const ToolChain *t) {
|
ToolChain *toolChain = ToolChainManager::toolChain([language](const ToolChain *t) {
|
||||||
const Abi abi = t->targetAbi();
|
const Abi abi = t->targetAbi();
|
||||||
return (abi.os() != Abi::WindowsOS
|
return (abi.os() != Abi::WindowsOS
|
||||||
@@ -263,10 +261,8 @@ static ProjectExplorer::ToolChain *desktopToolChain(Utils::Id language)
|
|||||||
return toolChain;
|
return toolChain;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ProjectExplorer::ToolChain* armGccToolChain(const Utils::FilePath &path, Utils::Id language)
|
static ToolChain *armGccToolChain(const FilePath &path, Id language)
|
||||||
{
|
{
|
||||||
using namespace ProjectExplorer;
|
|
||||||
|
|
||||||
ToolChain *toolChain = ToolChainManager::toolChain([&path, language](const ToolChain *t){
|
ToolChain *toolChain = ToolChainManager::toolChain([&path, language](const ToolChain *t){
|
||||||
return t->compilerCommand() == path && t->language() == language;
|
return t->compilerCommand() == path && t->language() == language;
|
||||||
});
|
});
|
||||||
@@ -289,16 +285,16 @@ static ProjectExplorer::ToolChain* armGccToolChain(const Utils::FilePath &path,
|
|||||||
return toolChain;
|
return toolChain;
|
||||||
}
|
}
|
||||||
|
|
||||||
ProjectExplorer::ToolChain *McuToolChainPackage::toolChain(Utils::Id language) const
|
ToolChain *McuToolChainPackage::toolChain(Id language) const
|
||||||
{
|
{
|
||||||
ProjectExplorer::ToolChain *tc = nullptr;
|
ToolChain *tc = nullptr;
|
||||||
if (m_type == TypeDesktop) {
|
if (m_type == TypeDesktop) {
|
||||||
tc = desktopToolChain(language);
|
tc = desktopToolChain(language);
|
||||||
} else {
|
} else {
|
||||||
const QLatin1String compilerName(
|
const QLatin1String compilerName(
|
||||||
language == ProjectExplorer::Constants::C_LANGUAGE_ID ? "gcc" : "g++");
|
language == ProjectExplorer::Constants::C_LANGUAGE_ID ? "gcc" : "g++");
|
||||||
const Utils::FilePath compiler = Utils::FilePath::fromUserInput(
|
const FilePath compiler = FilePath::fromUserInput(
|
||||||
Utils::HostOsInfo::withExecutableSuffix(
|
HostOsInfo::withExecutableSuffix(
|
||||||
path() + (
|
path() + (
|
||||||
m_type == TypeArmGcc
|
m_type == TypeArmGcc
|
||||||
? "/bin/arm-none-eabi-%1" : m_type == TypeIAR
|
? "/bin/arm-none-eabi-%1" : m_type == TypeIAR
|
||||||
@@ -321,8 +317,8 @@ QVariant McuToolChainPackage::debuggerId() const
|
|||||||
{
|
{
|
||||||
using namespace Debugger;
|
using namespace Debugger;
|
||||||
|
|
||||||
const Utils::FilePath command = Utils::FilePath::fromUserInput(
|
const FilePath command = FilePath::fromUserInput(
|
||||||
Utils::HostOsInfo::withExecutableSuffix(path() + (
|
HostOsInfo::withExecutableSuffix(path() + (
|
||||||
m_type == TypeArmGcc
|
m_type == TypeArmGcc
|
||||||
? "/bin/arm-none-eabi-gdb-py" : m_type == TypeIAR
|
? "/bin/arm-none-eabi-gdb-py" : m_type == TypeIAR
|
||||||
? "/foo/bar-iar-gdb" : "/bar/foo-keil-gdb")));
|
? "/foo/bar-iar-gdb" : "/bar/foo-keil-gdb")));
|
||||||
@@ -419,16 +415,16 @@ McuSupportOptions::~McuSupportOptions()
|
|||||||
|
|
||||||
void McuSupportOptions::populatePackagesAndTargets()
|
void McuSupportOptions::populatePackagesAndTargets()
|
||||||
{
|
{
|
||||||
setQulDir(Utils::FilePath::fromUserInput(qtForMCUsSdkPackage->path()));
|
setQulDir(FilePath::fromUserInput(qtForMCUsSdkPackage->path()));
|
||||||
}
|
}
|
||||||
|
|
||||||
static Utils::FilePath qulDocsDir()
|
static FilePath qulDocsDir()
|
||||||
{
|
{
|
||||||
const Utils::FilePath qulDir = McuSupportOptions::qulDirFromSettings();
|
const FilePath qulDir = McuSupportOptions::qulDirFromSettings();
|
||||||
if (qulDir.isEmpty() || !qulDir.exists())
|
if (qulDir.isEmpty() || !qulDir.exists())
|
||||||
return {};
|
return {};
|
||||||
const Utils::FilePath docsDir = qulDir.pathAppended("docs");
|
const FilePath docsDir = qulDir.pathAppended("docs");
|
||||||
return docsDir.exists() ? docsDir : Utils::FilePath();
|
return docsDir.exists() ? docsDir : FilePath();
|
||||||
}
|
}
|
||||||
|
|
||||||
void McuSupportOptions::registerQchFiles()
|
void McuSupportOptions::registerQchFiles()
|
||||||
@@ -441,19 +437,16 @@ void McuSupportOptions::registerQchFiles()
|
|||||||
docsDir + "/quickultralite.qch",
|
docsDir + "/quickultralite.qch",
|
||||||
docsDir + "/quickultralitecmake.qch"
|
docsDir + "/quickultralitecmake.qch"
|
||||||
};
|
};
|
||||||
Core::HelpManager::registerDocumentation(
|
Core::HelpManager::registerDocumentation(Utils::filtered(qchFiles, &QFileInfo::exists));
|
||||||
Utils::filtered(qchFiles,
|
|
||||||
[](const QString &file) { return QFileInfo::exists(file); }));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void McuSupportOptions::registerExamples()
|
void McuSupportOptions::registerExamples()
|
||||||
{
|
{
|
||||||
const Utils::FilePath docsDir = qulDocsDir();
|
const FilePath docsDir = qulDocsDir();
|
||||||
if (docsDir.isEmpty())
|
if (docsDir.isEmpty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const Utils::FilePath examplesDir =
|
const FilePath examplesDir = McuSupportOptions::qulDirFromSettings().pathAppended("demos");
|
||||||
McuSupportOptions::qulDirFromSettings().pathAppended("demos");
|
|
||||||
if (!examplesDir.exists())
|
if (!examplesDir.exists())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -475,37 +468,33 @@ const QVersionNumber &McuSupportOptions::minimalQulVersion()
|
|||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
void McuSupportOptions::setQulDir(const Utils::FilePath &dir)
|
void McuSupportOptions::setQulDir(const FilePath &dir)
|
||||||
{
|
{
|
||||||
deletePackagesAndTargets();
|
deletePackagesAndTargets();
|
||||||
Sdk::targetsAndPackages(dir, &packages, &mcuTargets);
|
Sdk::targetsAndPackages(dir, &packages, &mcuTargets);
|
||||||
//packages.append(qtForMCUsSdkPackage);
|
//packages.append(qtForMCUsSdkPackage);
|
||||||
for (auto package : packages) {
|
for (auto package : packages)
|
||||||
connect(package, &McuPackage::changed, [this](){
|
connect(package, &McuPackage::changed, this, &McuSupportOptions::changed);
|
||||||
emit changed();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
emit changed();
|
emit changed();
|
||||||
}
|
}
|
||||||
|
|
||||||
Utils::FilePath McuSupportOptions::qulDirFromSettings()
|
FilePath McuSupportOptions::qulDirFromSettings()
|
||||||
{
|
{
|
||||||
return Utils::FilePath::fromUserInput(
|
return FilePath::fromUserInput(
|
||||||
packagePathFromSettings(Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK,
|
packagePathFromSettings(Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK,
|
||||||
QSettings::UserScope));
|
QSettings::UserScope));
|
||||||
}
|
}
|
||||||
|
|
||||||
static Utils::FilePath jomExecutablePath()
|
static FilePath jomExecutablePath()
|
||||||
{
|
{
|
||||||
return Utils::HostOsInfo::isWindowsHost() ?
|
return HostOsInfo::isWindowsHost()
|
||||||
Utils::FilePath::fromUserInput(Core::ICore::libexecPath() + "/jom.exe")
|
? FilePath::fromUserInput(Core::ICore::libexecPath() + "/jom.exe")
|
||||||
: Utils::FilePath();
|
: FilePath();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void setKitProperties(const QString &kitName, ProjectExplorer::Kit *k,
|
static void setKitProperties(const QString &kitName, Kit *k, const McuTarget *mcuTarget)
|
||||||
const McuTarget* mcuTarget)
|
|
||||||
{
|
{
|
||||||
using namespace ProjectExplorer;
|
|
||||||
using namespace Constants;
|
using namespace Constants;
|
||||||
|
|
||||||
k->setUnexpandedDisplayName(kitName);
|
k->setUnexpandedDisplayName(kitName);
|
||||||
@@ -519,9 +508,7 @@ static void setKitProperties(const QString &kitName, ProjectExplorer::Kit *k,
|
|||||||
k->makeSticky();
|
k->makeSticky();
|
||||||
if (mcuTarget->toolChainPackage()->type() == McuToolChainPackage::TypeDesktop)
|
if (mcuTarget->toolChainPackage()->type() == McuToolChainPackage::TypeDesktop)
|
||||||
k->setDeviceTypeForIcon(DEVICE_TYPE);
|
k->setDeviceTypeForIcon(DEVICE_TYPE);
|
||||||
QSet<Utils::Id> irrelevant = {
|
QSet<Id> irrelevant = { SysRootKitAspect::id() };
|
||||||
SysRootKitAspect::id()
|
|
||||||
};
|
|
||||||
if (!kitNeedsQtVersion())
|
if (!kitNeedsQtVersion())
|
||||||
irrelevant.insert(QtSupport::QtKitAspect::id());
|
irrelevant.insert(QtSupport::QtKitAspect::id());
|
||||||
if (jomExecutablePath().exists()) // TODO: add id() getter to CMakeGeneratorKitAspect
|
if (jomExecutablePath().exists()) // TODO: add id() getter to CMakeGeneratorKitAspect
|
||||||
@@ -529,19 +516,19 @@ static void setKitProperties(const QString &kitName, ProjectExplorer::Kit *k,
|
|||||||
k->setIrrelevantAspects(irrelevant);
|
k->setIrrelevantAspects(irrelevant);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void setKitToolchains(ProjectExplorer::Kit *k, const McuToolChainPackage *tcPackage)
|
static void setKitToolchains(Kit *k, const McuToolChainPackage *tcPackage)
|
||||||
{
|
{
|
||||||
// No Green Hills toolchain, because support for it is missing.
|
// No Green Hills toolchain, because support for it is missing.
|
||||||
if (tcPackage->type() == McuToolChainPackage::TypeGHS)
|
if (tcPackage->type() == McuToolChainPackage::TypeGHS)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ProjectExplorer::ToolChainKitAspect::setToolChain(k, tcPackage->toolChain(
|
ToolChainKitAspect::setToolChain(k, tcPackage->toolChain(
|
||||||
ProjectExplorer::Constants::C_LANGUAGE_ID));
|
ProjectExplorer::Constants::C_LANGUAGE_ID));
|
||||||
ProjectExplorer::ToolChainKitAspect::setToolChain(k, tcPackage->toolChain(
|
ToolChainKitAspect::setToolChain(k, tcPackage->toolChain(
|
||||||
ProjectExplorer::Constants::CXX_LANGUAGE_ID));
|
ProjectExplorer::Constants::CXX_LANGUAGE_ID));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void setKitDebugger(ProjectExplorer::Kit *k, const McuToolChainPackage *tcPackage)
|
static void setKitDebugger(Kit *k, const McuToolChainPackage *tcPackage)
|
||||||
{
|
{
|
||||||
// Qt Creator seems to be smart enough to deduce the right Kit debugger from the ToolChain
|
// Qt Creator seems to be smart enough to deduce the right Kit debugger from the ToolChain
|
||||||
// We rely on that at least in the Desktop case.
|
// We rely on that at least in the Desktop case.
|
||||||
@@ -553,21 +540,19 @@ static void setKitDebugger(ProjectExplorer::Kit *k, const McuToolChainPackage *t
|
|||||||
Debugger::DebuggerKitAspect::setDebugger(k, tcPackage->debuggerId());
|
Debugger::DebuggerKitAspect::setDebugger(k, tcPackage->debuggerId());
|
||||||
}
|
}
|
||||||
|
|
||||||
static void setKitDevice(ProjectExplorer::Kit *k, const McuTarget* mcuTarget)
|
static void setKitDevice(Kit *k, const McuTarget* mcuTarget)
|
||||||
{
|
{
|
||||||
// "Device Type" Desktop is the default. We use that for the Qt for MCUs Desktop Kit
|
// "Device Type" Desktop is the default. We use that for the Qt for MCUs Desktop Kit
|
||||||
if (mcuTarget->toolChainPackage()->type() == McuToolChainPackage::TypeDesktop)
|
if (mcuTarget->toolChainPackage()->type() == McuToolChainPackage::TypeDesktop)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ProjectExplorer::DeviceTypeKitAspect::setDeviceTypeId(k, Constants::DEVICE_TYPE);
|
DeviceTypeKitAspect::setDeviceTypeId(k, Constants::DEVICE_TYPE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void setKitEnvironment(ProjectExplorer::Kit *k, const McuTarget* mcuTarget,
|
static void setKitEnvironment(Kit *k, const McuTarget *mcuTarget,
|
||||||
const McuPackage *qtForMCUsSdkPackage)
|
const McuPackage *qtForMCUsSdkPackage)
|
||||||
{
|
{
|
||||||
using namespace ProjectExplorer;
|
EnvironmentItems changes;
|
||||||
|
|
||||||
Utils::EnvironmentItems changes;
|
|
||||||
QStringList pathAdditions;
|
QStringList pathAdditions;
|
||||||
|
|
||||||
// The Desktop version depends on the Qt shared libs in Qul_DIR/bin.
|
// The Desktop version depends on the Qt shared libs in Qul_DIR/bin.
|
||||||
@@ -588,10 +573,10 @@ static void setKitEnvironment(ProjectExplorer::Kit *k, const McuTarget* mcuTarge
|
|||||||
processPackage(package);
|
processPackage(package);
|
||||||
processPackage(qtForMCUsSdkPackage);
|
processPackage(qtForMCUsSdkPackage);
|
||||||
|
|
||||||
const QString path = QLatin1String(Utils::HostOsInfo().isWindowsHost() ? "Path" : "PATH");
|
const QString path = QLatin1String(HostOsInfo().isWindowsHost() ? "Path" : "PATH");
|
||||||
pathAdditions.append("${" + path + "}");
|
pathAdditions.append("${" + path + "}");
|
||||||
pathAdditions.append(QDir::toNativeSeparators(Core::ICore::libexecPath() + "/clang/bin"));
|
pathAdditions.append(QDir::toNativeSeparators(Core::ICore::libexecPath() + "/clang/bin"));
|
||||||
changes.append({path, pathAdditions.join(Utils::HostOsInfo::pathListSeparator())});
|
changes.append({path, pathAdditions.join(HostOsInfo::pathListSeparator())});
|
||||||
|
|
||||||
if (kitNeedsQtVersion())
|
if (kitNeedsQtVersion())
|
||||||
changes.append({QLatin1String("LD_LIBRARY_PATH"), "%{Qt:QT_INSTALL_LIBS}"});
|
changes.append({QLatin1String("LD_LIBRARY_PATH"), "%{Qt:QT_INSTALL_LIBS}"});
|
||||||
@@ -599,8 +584,7 @@ static void setKitEnvironment(ProjectExplorer::Kit *k, const McuTarget* mcuTarge
|
|||||||
EnvironmentKitAspect::setEnvironmentChanges(k, changes);
|
EnvironmentKitAspect::setEnvironmentChanges(k, changes);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void setKitCMakeOptions(ProjectExplorer::Kit *k, const McuTarget* mcuTarget,
|
static void setKitCMakeOptions(Kit *k, const McuTarget* mcuTarget, const QString &qulDir)
|
||||||
const QString &qulDir)
|
|
||||||
{
|
{
|
||||||
using namespace CMakeProjectManager;
|
using namespace CMakeProjectManager;
|
||||||
|
|
||||||
@@ -626,7 +610,7 @@ static void setKitCMakeOptions(ProjectExplorer::Kit *k, const McuTarget* mcuTarg
|
|||||||
if (mcuTarget->colorDepth() >= 0)
|
if (mcuTarget->colorDepth() >= 0)
|
||||||
config.append(CMakeConfigItem("QUL_COLOR_DEPTH",
|
config.append(CMakeConfigItem("QUL_COLOR_DEPTH",
|
||||||
QString::number(mcuTarget->colorDepth()).toLatin1()));
|
QString::number(mcuTarget->colorDepth()).toLatin1()));
|
||||||
const Utils::FilePath jom = jomExecutablePath();
|
const FilePath jom = jomExecutablePath();
|
||||||
if (jom.exists()) {
|
if (jom.exists()) {
|
||||||
config.append(CMakeConfigItem("CMAKE_MAKE_PROGRAM", jom.toString().toLatin1()));
|
config.append(CMakeConfigItem("CMAKE_MAKE_PROGRAM", jom.toString().toLatin1()));
|
||||||
CMakeGeneratorKitAspect::setGenerator(k, "NMake Makefiles JOM");
|
CMakeGeneratorKitAspect::setGenerator(k, "NMake Makefiles JOM");
|
||||||
@@ -636,7 +620,7 @@ static void setKitCMakeOptions(ProjectExplorer::Kit *k, const McuTarget* mcuTarg
|
|||||||
CMakeConfigurationKitAspect::setConfiguration(k, config);
|
CMakeConfigurationKitAspect::setConfiguration(k, config);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void setKitQtVersionOptions(ProjectExplorer::Kit *k)
|
static void setKitQtVersionOptions(Kit *k)
|
||||||
{
|
{
|
||||||
if (!kitNeedsQtVersion())
|
if (!kitNeedsQtVersion())
|
||||||
QtSupport::QtKitAspect::setQtVersion(k, nullptr);
|
QtSupport::QtKitAspect::setQtVersion(k, nullptr);
|
||||||
@@ -667,9 +651,8 @@ QString McuSupportOptions::kitName(const McuTarget *mcuTarget)
|
|||||||
colorDepth);
|
colorDepth);
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<ProjectExplorer::Kit *> McuSupportOptions::existingKits(const McuTarget *mcuTarget)
|
QList<Kit *> McuSupportOptions::existingKits(const McuTarget *mcuTarget)
|
||||||
{
|
{
|
||||||
using namespace ProjectExplorer;
|
|
||||||
using namespace Constants;
|
using namespace Constants;
|
||||||
return Utils::filtered(KitManager::kits(), [mcuTarget](Kit *kit) {
|
return Utils::filtered(KitManager::kits(), [mcuTarget](Kit *kit) {
|
||||||
return kit->isAutoDetected()
|
return kit->isAutoDetected()
|
||||||
@@ -684,9 +667,9 @@ QList<ProjectExplorer::Kit *> McuSupportOptions::existingKits(const McuTarget *m
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<ProjectExplorer::Kit *> McuSupportOptions::outdatedKits()
|
QList<Kit *> McuSupportOptions::outdatedKits()
|
||||||
{
|
{
|
||||||
return Utils::filtered(ProjectExplorer::KitManager::kits(), [](ProjectExplorer::Kit *kit) {
|
return Utils::filtered(KitManager::kits(), [](Kit *kit) {
|
||||||
return kit->isAutoDetected()
|
return kit->isAutoDetected()
|
||||||
&& !kit->value(Constants::KIT_MCUTARGET_VENDOR_KEY).isNull()
|
&& !kit->value(Constants::KIT_MCUTARGET_VENDOR_KEY).isNull()
|
||||||
&& kit->value(Constants::KIT_MCUTARGET_KITVERSION_KEY) != KIT_VERSION;
|
&& kit->value(Constants::KIT_MCUTARGET_KITVERSION_KEY) != KIT_VERSION;
|
||||||
@@ -696,14 +679,11 @@ QList<ProjectExplorer::Kit *> McuSupportOptions::outdatedKits()
|
|||||||
void McuSupportOptions::removeOutdatedKits()
|
void McuSupportOptions::removeOutdatedKits()
|
||||||
{
|
{
|
||||||
for (auto kit : McuSupportOptions::outdatedKits())
|
for (auto kit : McuSupportOptions::outdatedKits())
|
||||||
ProjectExplorer::KitManager::deregisterKit(kit);
|
KitManager::deregisterKit(kit);
|
||||||
}
|
}
|
||||||
|
|
||||||
ProjectExplorer::Kit *McuSupportOptions::newKit(const McuTarget *mcuTarget,
|
Kit *McuSupportOptions::newKit(const McuTarget *mcuTarget, const McuPackage *qtForMCUsSdk)
|
||||||
const McuPackage *qtForMCUsSdk)
|
|
||||||
{
|
{
|
||||||
using namespace ProjectExplorer;
|
|
||||||
|
|
||||||
const auto init = [mcuTarget, qtForMCUsSdk](Kit *k) {
|
const auto init = [mcuTarget, qtForMCUsSdk](Kit *k) {
|
||||||
KitGuard kitGuard(k);
|
KitGuard kitGuard(k);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user