forked from qt-creator/qt-creator
Mcu: Proliferate FilePath use in McuSupport
Change-Id: I0ae8bf1454d1715f251d88065b52e3bb6a242402 Reviewed-by: Christiaan Janssen <christiaan.janssen@qt.io> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -72,15 +72,15 @@ namespace Internal {
|
|||||||
|
|
||||||
static const int KIT_VERSION = 8; // Bumps up whenever details in Kit creation change
|
static const int KIT_VERSION = 8; // Bumps up whenever details in Kit creation change
|
||||||
|
|
||||||
static QString packagePathFromSettings(const QString &settingsKey,
|
static FilePath packagePathFromSettings(const QString &settingsKey,
|
||||||
QSettings::Scope scope = QSettings::UserScope,
|
QSettings::Scope scope = QSettings::UserScope,
|
||||||
const QString &defaultPath = {})
|
const FilePath &defaultPath = {})
|
||||||
{
|
{
|
||||||
QSettings *settings = Core::ICore::settings(scope);
|
QSettings *settings = Core::ICore::settings(scope);
|
||||||
const QString key = QLatin1String(Constants::SETTINGS_GROUP) + '/' +
|
const QString key = QLatin1String(Constants::SETTINGS_GROUP) + '/' +
|
||||||
QLatin1String(Constants::SETTINGS_KEY_PACKAGE_PREFIX) + settingsKey;
|
QLatin1String(Constants::SETTINGS_KEY_PACKAGE_PREFIX) + settingsKey;
|
||||||
const QString path = settings->value(key, defaultPath).toString();
|
const QString path = settings->value(key, defaultPath.toString()).toString();
|
||||||
return FilePath::fromUserInput(path).toString();
|
return FilePath::fromUserInput(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool automaticKitCreationFromSettings(QSettings::Scope scope = QSettings::UserScope)
|
static bool automaticKitCreationFromSettings(QSettings::Scope scope = QSettings::UserScope)
|
||||||
@@ -99,7 +99,7 @@ static bool kitNeedsQtVersion()
|
|||||||
return !HostOsInfo::isWindowsHost();
|
return !HostOsInfo::isWindowsHost();
|
||||||
}
|
}
|
||||||
|
|
||||||
McuPackage::McuPackage(const QString &label, const QString &defaultPath,
|
McuPackage::McuPackage(const QString &label, const FilePath &defaultPath,
|
||||||
const QString &detectionPath, const QString &settingsKey,
|
const QString &detectionPath, const QString &settingsKey,
|
||||||
const McuPackageVersionDetector *versionDetector)
|
const McuPackageVersionDetector *versionDetector)
|
||||||
: m_label(label)
|
: m_label(label)
|
||||||
@@ -112,14 +112,14 @@ McuPackage::McuPackage(const QString &label, const QString &defaultPath,
|
|||||||
m_automaticKitCreation = automaticKitCreationFromSettings(QSettings::UserScope);
|
m_automaticKitCreation = automaticKitCreationFromSettings(QSettings::UserScope);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString McuPackage::basePath() const
|
FilePath McuPackage::basePath() const
|
||||||
{
|
{
|
||||||
return m_fileChooser != nullptr ? m_fileChooser->filePath().toString() : m_path;
|
return m_fileChooser != nullptr ? m_fileChooser->filePath() : m_path;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString McuPackage::path() const
|
FilePath McuPackage::path() const
|
||||||
{
|
{
|
||||||
return QFileInfo(basePath() + m_relativePathModifier).absoluteFilePath();
|
return basePath().resolvePath(m_relativePathModifier).absoluteFilePath();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString McuPackage::label() const
|
QString McuPackage::label() const
|
||||||
@@ -127,7 +127,7 @@ QString McuPackage::label() const
|
|||||||
return m_label;
|
return m_label;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString McuPackage::defaultPath() const
|
FilePath McuPackage::defaultPath() const
|
||||||
{
|
{
|
||||||
return m_defaultPath;
|
return m_defaultPath;
|
||||||
}
|
}
|
||||||
@@ -148,7 +148,7 @@ QWidget *McuPackage::widget()
|
|||||||
Icons::RESET.icon());
|
Icons::RESET.icon());
|
||||||
m_fileChooser->lineEdit()->setButtonVisible(FancyLineEdit::Right, true);
|
m_fileChooser->lineEdit()->setButtonVisible(FancyLineEdit::Right, true);
|
||||||
connect(m_fileChooser->lineEdit(), &FancyLineEdit::rightButtonClicked, this, [&] {
|
connect(m_fileChooser->lineEdit(), &FancyLineEdit::rightButtonClicked, this, [&] {
|
||||||
m_fileChooser->setPath(m_defaultPath);
|
m_fileChooser->setFilePath(m_defaultPath);
|
||||||
});
|
});
|
||||||
|
|
||||||
auto layout = new QGridLayout(m_widget);
|
auto layout = new QGridLayout(m_widget);
|
||||||
@@ -168,7 +168,7 @@ QWidget *McuPackage::widget()
|
|||||||
layout->addWidget(m_fileChooser, 0, 0, 1, 2);
|
layout->addWidget(m_fileChooser, 0, 0, 1, 2);
|
||||||
layout->addWidget(m_infoLabel, 1, 0, 1, -1);
|
layout->addWidget(m_infoLabel, 1, 0, 1, -1);
|
||||||
|
|
||||||
m_fileChooser->setPath(m_path);
|
m_fileChooser->setFilePath(m_path);
|
||||||
|
|
||||||
QObject::connect(this, &McuPackage::statusChanged, this, [this] {
|
QObject::connect(this, &McuPackage::statusChanged, this, [this] {
|
||||||
updateStatusUi();
|
updateStatusUi();
|
||||||
@@ -228,7 +228,7 @@ void McuPackage::writeGeneralSettings() const
|
|||||||
|
|
||||||
bool McuPackage::writeToSettings() const
|
bool McuPackage::writeToSettings() const
|
||||||
{
|
{
|
||||||
const QString savedPath = packagePathFromSettings(m_settingsKey, QSettings::UserScope, m_defaultPath);
|
const FilePath savedPath = packagePathFromSettings(m_settingsKey, QSettings::UserScope, m_defaultPath);
|
||||||
const QString key = QLatin1String(Constants::SETTINGS_GROUP) + '/' +
|
const QString key = QLatin1String(Constants::SETTINGS_GROUP) + '/' +
|
||||||
QLatin1String(Constants::SETTINGS_KEY_PACKAGE_PREFIX) + m_settingsKey;
|
QLatin1String(Constants::SETTINGS_KEY_PACKAGE_PREFIX) + m_settingsKey;
|
||||||
Core::ICore::settings()->setValueWithDefault(key, m_path, m_defaultPath);
|
Core::ICore::settings()->setValueWithDefault(key, m_path, m_defaultPath);
|
||||||
@@ -258,17 +258,18 @@ void McuPackage::setAutomaticKitCreationEnabled(const bool enabled)
|
|||||||
|
|
||||||
void McuPackage::updatePath()
|
void McuPackage::updatePath()
|
||||||
{
|
{
|
||||||
m_path = m_fileChooser->rawPath();
|
m_path = m_fileChooser->rawFilePath();
|
||||||
m_fileChooser->lineEdit()->button(FancyLineEdit::Right)->setEnabled(m_path != m_defaultPath);
|
m_fileChooser->lineEdit()->button(FancyLineEdit::Right)->setEnabled(m_path != m_defaultPath);
|
||||||
updateStatus();
|
updateStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
void McuPackage::updateStatus()
|
void McuPackage::updateStatus()
|
||||||
{
|
{
|
||||||
bool validPath = !m_path.isEmpty() && FilePath::fromString(m_path).exists();
|
bool validPath = !m_path.isEmpty() && m_path.exists();
|
||||||
const FilePath detectionPath = FilePath::fromString(basePath() + "/" + m_detectionPath);
|
const FilePath detectionPath = basePath() / m_detectionPath;
|
||||||
const bool validPackage = m_detectionPath.isEmpty() || detectionPath.exists();
|
const bool validPackage = m_detectionPath.isEmpty() || detectionPath.exists();
|
||||||
m_detectedVersion = validPath && validPackage && m_versionDetector ? m_versionDetector->parseVersion(basePath()) : QString();
|
m_detectedVersion = validPath && validPackage && m_versionDetector
|
||||||
|
? m_versionDetector->parseVersion(basePath().toString()) : QString();
|
||||||
const bool validVersion = m_detectedVersion.isEmpty() ||
|
const bool validVersion = m_detectedVersion.isEmpty() ||
|
||||||
m_versions.isEmpty() || m_versions.contains(m_detectedVersion);
|
m_versions.isEmpty() || m_versions.contains(m_detectedVersion);
|
||||||
|
|
||||||
@@ -293,7 +294,7 @@ void McuPackage::updateStatusUi()
|
|||||||
|
|
||||||
QString McuPackage::statusText() const
|
QString McuPackage::statusText() const
|
||||||
{
|
{
|
||||||
const QString displayPackagePath = FilePath::fromString(m_path).toUserOutput();
|
const QString displayPackagePath = m_path.toUserOutput();
|
||||||
const QString displayVersions = QStringList(m_versions.toList()).join(" or ");
|
const QString displayVersions = QStringList(m_versions.toList()).join(" or ");
|
||||||
const QString displayRequiredPath = QString("%1 %2").arg(
|
const QString displayRequiredPath = QString("%1 %2").arg(
|
||||||
FilePath::fromString(m_detectionPath).toUserOutput(),
|
FilePath::fromString(m_detectionPath).toUserOutput(),
|
||||||
@@ -339,7 +340,7 @@ QString McuPackage::statusText() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
McuToolChainPackage::McuToolChainPackage(const QString &label,
|
McuToolChainPackage::McuToolChainPackage(const QString &label,
|
||||||
const QString &defaultPath,
|
const FilePath &defaultPath,
|
||||||
const QString &detectionPath,
|
const QString &detectionPath,
|
||||||
const QString &settingsKey,
|
const QString &settingsKey,
|
||||||
McuToolChainPackage::Type type,
|
McuToolChainPackage::Type type,
|
||||||
@@ -447,11 +448,9 @@ ToolChain *McuToolChainPackage::toolChain(Id language) const
|
|||||||
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 FilePath compiler = FilePath::fromUserInput(
|
const QString comp = QLatin1String(m_type == TypeArmGcc ? "/bin/arm-none-eabi-%1" : "/bar/foo-keil-%1")
|
||||||
HostOsInfo::withExecutableSuffix(
|
.arg(compilerName);
|
||||||
path() + (
|
const FilePath compiler = path().pathAppended(comp).withExecutableSuffix();
|
||||||
m_type == TypeArmGcc
|
|
||||||
? "/bin/arm-none-eabi-%1" : "/bar/foo-keil-%1")).arg(compilerName));
|
|
||||||
|
|
||||||
tc = armGccToolChain(compiler, language);
|
tc = armGccToolChain(compiler, language);
|
||||||
}
|
}
|
||||||
@@ -479,11 +478,10 @@ QVariant McuToolChainPackage::debuggerId() const
|
|||||||
{
|
{
|
||||||
using namespace Debugger;
|
using namespace Debugger;
|
||||||
|
|
||||||
const FilePath command = FilePath::fromUserInput(
|
QString sub = QString::fromLatin1(m_type == TypeArmGcc ? "bin/arm-none-eabi-gdb-py"
|
||||||
HostOsInfo::withExecutableSuffix(path() + (
|
: m_type == TypeIAR ? "../common/bin/CSpyBat" : "bar/foo-keil-gdb");
|
||||||
m_type == TypeArmGcc
|
|
||||||
? "/bin/arm-none-eabi-gdb-py" : m_type == TypeIAR
|
const FilePath command = path().pathAppended(sub).withExecutableSuffix();
|
||||||
? "../common/bin/CSpyBat" : "/bar/foo-keil-gdb")));
|
|
||||||
const DebuggerItem *debugger = DebuggerItemManager::findByCommand(command);
|
const DebuggerItem *debugger = DebuggerItemManager::findByCommand(command);
|
||||||
QVariant debuggerId;
|
QVariant debuggerId;
|
||||||
if (!debugger) {
|
if (!debugger) {
|
||||||
@@ -591,7 +589,7 @@ McuSupportOptions::~McuSupportOptions()
|
|||||||
|
|
||||||
void McuSupportOptions::populatePackagesAndTargets()
|
void McuSupportOptions::populatePackagesAndTargets()
|
||||||
{
|
{
|
||||||
setQulDir(FilePath::fromUserInput(qtForMCUsSdkPackage->path()));
|
setQulDir(qtForMCUsSdkPackage->path());
|
||||||
}
|
}
|
||||||
|
|
||||||
static FilePath qulDocsDir()
|
static FilePath qulDocsDir()
|
||||||
@@ -665,13 +663,12 @@ void McuSupportOptions::setQulDir(const FilePath &dir)
|
|||||||
|
|
||||||
FilePath McuSupportOptions::qulDirFromSettings()
|
FilePath McuSupportOptions::qulDirFromSettings()
|
||||||
{
|
{
|
||||||
return FilePath::fromUserInput(
|
return packagePathFromSettings(Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK,
|
||||||
packagePathFromSettings(Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK,
|
QSettings::UserScope);
|
||||||
QSettings::UserScope));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void setKitProperties(const QString &kitName, Kit *k, const McuTarget *mcuTarget,
|
static void setKitProperties(const QString &kitName, Kit *k, const McuTarget *mcuTarget,
|
||||||
const QString &sdkPath)
|
const FilePath &sdkPath)
|
||||||
{
|
{
|
||||||
using namespace Constants;
|
using namespace Constants;
|
||||||
|
|
||||||
@@ -688,7 +685,7 @@ static void setKitProperties(const QString &kitName, Kit *k, const McuTarget *mc
|
|||||||
if (mcuTarget->toolChainPackage()->isDesktopToolchain())
|
if (mcuTarget->toolChainPackage()->isDesktopToolchain())
|
||||||
k->setDeviceTypeForIcon(DEVICE_TYPE);
|
k->setDeviceTypeForIcon(DEVICE_TYPE);
|
||||||
k->setValue(QtSupport::SuppliesQtQuickImportPath::id(), true);
|
k->setValue(QtSupport::SuppliesQtQuickImportPath::id(), true);
|
||||||
k->setValue(QtSupport::KitQmlImportPath::id(), QVariant(sdkPath + "/include/qul"));
|
k->setValue(QtSupport::KitQmlImportPath::id(), sdkPath.pathAppended("include/qul").toVariant());
|
||||||
k->setValue(QtSupport::KitHasMergedHeaderPathsWithQmlImportPaths::id(), true);
|
k->setValue(QtSupport::KitHasMergedHeaderPathsWithQmlImportPaths::id(), true);
|
||||||
QSet<Id> irrelevant = {
|
QSet<Id> irrelevant = {
|
||||||
SysRootKitAspect::id(),
|
SysRootKitAspect::id(),
|
||||||
@@ -750,14 +747,13 @@ static void setKitEnvironment(Kit *k, const McuTarget *mcuTarget,
|
|||||||
// feature of the run configuration. Otherwise, we just prepend the path, here.
|
// feature of the run configuration. Otherwise, we just prepend the path, here.
|
||||||
if (mcuTarget->toolChainPackage()->isDesktopToolchain()
|
if (mcuTarget->toolChainPackage()->isDesktopToolchain()
|
||||||
&& !CMakeProjectManager::CMakeToolManager::defaultCMakeTool()->hasFileApi())
|
&& !CMakeProjectManager::CMakeToolManager::defaultCMakeTool()->hasFileApi())
|
||||||
pathAdditions.append(QDir::toNativeSeparators(qtForMCUsSdkPackage->path() + "/bin"));
|
pathAdditions.append(qtForMCUsSdkPackage->path().pathAppended("bin").toUserOutput());
|
||||||
|
|
||||||
auto processPackage = [&pathAdditions, &changes](const McuPackage *package) {
|
auto processPackage = [&pathAdditions, &changes](const McuPackage *package) {
|
||||||
if (package->addToPath())
|
if (package->addToPath())
|
||||||
pathAdditions.append(QDir::toNativeSeparators(package->path()));
|
pathAdditions.append(package->path().toUserOutput());
|
||||||
if (!package->environmentVariableName().isEmpty())
|
if (!package->environmentVariableName().isEmpty())
|
||||||
changes.append({package->environmentVariableName(),
|
changes.append({package->environmentVariableName(), package->path().toUserOutput()});
|
||||||
QDir::toNativeSeparators(package->path())});
|
|
||||||
};
|
};
|
||||||
for (auto package : mcuTarget->packages())
|
for (auto package : mcuTarget->packages())
|
||||||
processPackage(package);
|
processPackage(package);
|
||||||
@@ -808,7 +804,7 @@ static void updateKitEnvironment(Kit *k, const McuTarget *mcuTarget)
|
|||||||
return item.name == varName;
|
return item.name == varName;
|
||||||
});
|
});
|
||||||
const EnvironmentItem item = {package->environmentVariableName(),
|
const EnvironmentItem item = {package->environmentVariableName(),
|
||||||
QDir::toNativeSeparators(package->path())};
|
package->path().toUserOutput()};
|
||||||
if (index != -1)
|
if (index != -1)
|
||||||
changes.replace(index, item);
|
changes.replace(index, item);
|
||||||
else
|
else
|
||||||
@@ -819,7 +815,7 @@ static void updateKitEnvironment(Kit *k, const McuTarget *mcuTarget)
|
|||||||
EnvironmentKitAspect::setEnvironmentChanges(k, changes);
|
EnvironmentKitAspect::setEnvironmentChanges(k, changes);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void setKitCMakeOptions(Kit *k, const McuTarget* mcuTarget, const QString &qulDir)
|
static void setKitCMakeOptions(Kit *k, const McuTarget* mcuTarget, const FilePath &qulDir)
|
||||||
{
|
{
|
||||||
using namespace CMakeProjectManager;
|
using namespace CMakeProjectManager;
|
||||||
|
|
||||||
@@ -832,7 +828,7 @@ static void setKitCMakeOptions(Kit *k, const McuTarget* mcuTarget, const QString
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!mcuTarget->toolChainPackage()->isDesktopToolchain()) {
|
if (!mcuTarget->toolChainPackage()->isDesktopToolchain()) {
|
||||||
const FilePath cMakeToolchainFile = FilePath::fromString(qulDir + "/lib/cmake/Qul/toolchain/"
|
const FilePath cMakeToolchainFile = qulDir.pathAppended("lib/cmake/Qul/toolchain/"
|
||||||
+ mcuTarget->toolChainPackage()->cmakeToolChainFileName());
|
+ mcuTarget->toolChainPackage()->cmakeToolChainFileName());
|
||||||
|
|
||||||
config.append(CMakeConfigItem(
|
config.append(CMakeConfigItem(
|
||||||
@@ -844,7 +840,7 @@ static void setKitCMakeOptions(Kit *k, const McuTarget* mcuTarget, const QString
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const FilePath generatorsPath = FilePath::fromString(qulDir + "/lib/cmake/Qul/QulGenerators.cmake");
|
const FilePath generatorsPath = qulDir.pathAppended("/lib/cmake/Qul/QulGenerators.cmake");
|
||||||
config.append(CMakeConfigItem("QUL_GENERATORS",
|
config.append(CMakeConfigItem("QUL_GENERATORS",
|
||||||
generatorsPath.toString().toUtf8()));
|
generatorsPath.toString().toUtf8()));
|
||||||
if (!generatorsPath.exists()) {
|
if (!generatorsPath.exists()) {
|
||||||
@@ -947,7 +943,7 @@ QList<Kit *> McuSupportOptions::kitsWithMismatchedDependencies(const McuTarget *
|
|||||||
EnvironmentKitAspect::environmentChanges(kit)));
|
EnvironmentKitAspect::environmentChanges(kit)));
|
||||||
return Utils::anyOf(mcuTarget->packages(), [&environment](const McuPackage *package) {
|
return Utils::anyOf(mcuTarget->packages(), [&environment](const McuPackage *package) {
|
||||||
return !package->environmentVariableName().isEmpty() &&
|
return !package->environmentVariableName().isEmpty() &&
|
||||||
environment.value(package->environmentVariableName()) != QDir::toNativeSeparators(package->path());
|
environment.value(package->environmentVariableName()) != package->path().toUserOutput();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -1003,13 +999,13 @@ QVersionNumber McuSupportOptions::kitQulVersion(const Kit *kit)
|
|||||||
.toString());
|
.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
QString kitDependencyPath(const Kit *kit, const QString &variableName)
|
static FilePath kitDependencyPath(const Kit *kit, const QString &variableName)
|
||||||
{
|
{
|
||||||
for (const NameValueItem &nameValueItem : EnvironmentKitAspect::environmentChanges(kit)) {
|
for (const NameValueItem &nameValueItem : EnvironmentKitAspect::environmentChanges(kit)) {
|
||||||
if (nameValueItem.name == variableName)
|
if (nameValueItem.name == variableName)
|
||||||
return nameValueItem.value;
|
return FilePath::fromUserInput(nameValueItem.value);
|
||||||
}
|
}
|
||||||
return QString();
|
return FilePath();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool McuSupportOptions::kitUpToDate(const Kit *kit, const McuTarget *mcuTarget,
|
bool McuSupportOptions::kitUpToDate(const Kit *kit, const McuTarget *mcuTarget,
|
||||||
@@ -1052,13 +1048,13 @@ void McuSupportOptions::createAutomaticKits()
|
|||||||
const QString displayPath = FilePath::fromString(qtForMCUsPackage->detectionPath())
|
const QString displayPath = FilePath::fromString(qtForMCUsPackage->detectionPath())
|
||||||
.toUserOutput();
|
.toUserOutput();
|
||||||
printMessage(tr("Path %1 exists, but does not contain %2.")
|
printMessage(tr("Path %1 exists, but does not contain %2.")
|
||||||
.arg(qtForMCUsPackage->path(), displayPath),
|
.arg(qtForMCUsPackage->path().toUserOutput(), displayPath),
|
||||||
true);
|
true);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case McuPackage::InvalidPath: {
|
case McuPackage::InvalidPath: {
|
||||||
printMessage(tr("Path %1 does not exist. Add the path in Tools > Options > Devices > MCU.")
|
printMessage(tr("Path %1 does not exist. Add the path in Tools > Options > Devices > MCU.")
|
||||||
.arg(qtForMCUsPackage->path()),
|
.arg(qtForMCUsPackage->path().toUserOutput()),
|
||||||
true);
|
true);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1079,7 +1075,7 @@ void McuSupportOptions::createAutomaticKits()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto dir = FilePath::fromUserInput(qtForMCUsPackage->path());
|
FilePath dir = qtForMCUsPackage->path();
|
||||||
QVector<McuPackage*> packages;
|
QVector<McuPackage*> packages;
|
||||||
QVector<McuTarget*> mcuTargets;
|
QVector<McuTarget*> mcuTargets;
|
||||||
Sdk::targetsAndPackages(dir, &packages, &mcuTargets);
|
Sdk::targetsAndPackages(dir, &packages, &mcuTargets);
|
||||||
@@ -1131,7 +1127,7 @@ void McuSupportOptions::upgradeKits(UpgradeOption upgradeOption)
|
|||||||
|
|
||||||
auto qtForMCUsPackage = Sdk::createQtForMCUsPackage();
|
auto qtForMCUsPackage = Sdk::createQtForMCUsPackage();
|
||||||
|
|
||||||
auto dir = FilePath::fromUserInput(qtForMCUsPackage->path());
|
auto dir = qtForMCUsPackage->path();
|
||||||
QVector<McuPackage*> packages;
|
QVector<McuPackage*> packages;
|
||||||
QVector<McuTarget*> mcuTargets;
|
QVector<McuTarget*> mcuTargets;
|
||||||
Sdk::targetsAndPackages(dir, &packages, &mcuTargets);
|
Sdk::targetsAndPackages(dir, &packages, &mcuTargets);
|
||||||
@@ -1169,7 +1165,7 @@ void McuSupportOptions::fixKitsDependencies()
|
|||||||
{
|
{
|
||||||
auto qtForMCUsPackage = Sdk::createQtForMCUsPackage();
|
auto qtForMCUsPackage = Sdk::createQtForMCUsPackage();
|
||||||
|
|
||||||
auto dir = FilePath::fromUserInput(qtForMCUsPackage->path());
|
FilePath dir = qtForMCUsPackage->path();
|
||||||
QVector<McuPackage*> packages;
|
QVector<McuPackage*> packages;
|
||||||
QVector<McuTarget*> mcuTargets;
|
QVector<McuTarget*> mcuTargets;
|
||||||
Sdk::targetsAndPackages(dir, &packages, &mcuTargets);
|
Sdk::targetsAndPackages(dir, &packages, &mcuTargets);
|
||||||
@@ -1245,7 +1241,7 @@ void McuSupportOptions::fixExistingKits()
|
|||||||
auto qtForMCUsPackage = Sdk::createQtForMCUsPackage();
|
auto qtForMCUsPackage = Sdk::createQtForMCUsPackage();
|
||||||
qtForMCUsPackage->updateStatus();
|
qtForMCUsPackage->updateStatus();
|
||||||
if (qtForMCUsPackage->validStatus()) {
|
if (qtForMCUsPackage->validStatus()) {
|
||||||
auto dir = FilePath::fromUserInput(qtForMCUsPackage->path());
|
FilePath dir = qtForMCUsPackage->path();
|
||||||
QVector<McuPackage*> packages;
|
QVector<McuPackage*> packages;
|
||||||
QVector<McuTarget*> mcuTargets;
|
QVector<McuTarget*> mcuTargets;
|
||||||
Sdk::targetsAndPackages(dir, &packages, &mcuTargets);
|
Sdk::targetsAndPackages(dir, &packages, &mcuTargets);
|
||||||
|
|||||||
@@ -66,15 +66,15 @@ public:
|
|||||||
ValidPackage
|
ValidPackage
|
||||||
};
|
};
|
||||||
|
|
||||||
McuPackage(const QString &label, const QString &defaultPath,
|
McuPackage(const QString &label, const Utils::FilePath &defaultPath,
|
||||||
const QString &detectionPath, const QString &settingsKey,
|
const QString &detectionPath, const QString &settingsKey,
|
||||||
const McuPackageVersionDetector *versionDetector = nullptr);
|
const McuPackageVersionDetector *versionDetector = nullptr);
|
||||||
virtual ~McuPackage() = default;
|
virtual ~McuPackage() = default;
|
||||||
|
|
||||||
QString basePath() const;
|
Utils::FilePath basePath() const;
|
||||||
QString path() const;
|
Utils::FilePath path() const;
|
||||||
QString label() const;
|
QString label() const;
|
||||||
QString defaultPath() const;
|
Utils::FilePath defaultPath() const;
|
||||||
QString detectionPath() const;
|
QString detectionPath() const;
|
||||||
QString statusText() const;
|
QString statusText() const;
|
||||||
void updateStatus();
|
void updateStatus();
|
||||||
@@ -110,12 +110,12 @@ private:
|
|||||||
Utils::InfoLabel *m_infoLabel = nullptr;
|
Utils::InfoLabel *m_infoLabel = nullptr;
|
||||||
|
|
||||||
const QString m_label;
|
const QString m_label;
|
||||||
const QString m_defaultPath;
|
const Utils::FilePath m_defaultPath;
|
||||||
const QString m_detectionPath;
|
const QString m_detectionPath;
|
||||||
const QString m_settingsKey;
|
const QString m_settingsKey;
|
||||||
const McuPackageVersionDetector *m_versionDetector;
|
const McuPackageVersionDetector *m_versionDetector;
|
||||||
|
|
||||||
QString m_path;
|
Utils::FilePath m_path;
|
||||||
QString m_relativePathModifier; // relative path to m_path to be returned by path()
|
QString m_relativePathModifier; // relative path to m_path to be returned by path()
|
||||||
QString m_detectedVersion;
|
QString m_detectedVersion;
|
||||||
QVector<QString> m_versions;
|
QVector<QString> m_versions;
|
||||||
@@ -142,7 +142,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
McuToolChainPackage(const QString &label,
|
McuToolChainPackage(const QString &label,
|
||||||
const QString &defaultPath,
|
const Utils::FilePath &defaultPath,
|
||||||
const QString &detectionPath,
|
const QString &detectionPath,
|
||||||
const QString &settingsKey,
|
const QString &settingsKey,
|
||||||
Type type,
|
Type type,
|
||||||
|
|||||||
@@ -193,7 +193,7 @@ void McuSupportOptionsWidget::updateStatus()
|
|||||||
m_mcuTargetsInfoLabel->setVisible(valid && m_options.mcuTargets.isEmpty());
|
m_mcuTargetsInfoLabel->setVisible(valid && m_options.mcuTargets.isEmpty());
|
||||||
if (m_mcuTargetsInfoLabel->isVisible()) {
|
if (m_mcuTargetsInfoLabel->isVisible()) {
|
||||||
m_mcuTargetsInfoLabel->setType(Utils::InfoLabel::NotOk);
|
m_mcuTargetsInfoLabel->setType(Utils::InfoLabel::NotOk);
|
||||||
const auto sdkPath = Utils::FilePath::fromString(m_options.qtForMCUsSdkPackage->basePath());
|
const Utils::FilePath sdkPath = m_options.qtForMCUsSdkPackage->basePath();
|
||||||
QString deprecationMessage;
|
QString deprecationMessage;
|
||||||
if (Sdk::checkDeprecatedSdkError(sdkPath, deprecationMessage))
|
if (Sdk::checkDeprecatedSdkError(sdkPath, deprecationMessage))
|
||||||
m_mcuTargetsInfoLabel->setText(deprecationMessage);
|
m_mcuTargetsInfoLabel->setText(deprecationMessage);
|
||||||
|
|||||||
@@ -49,15 +49,14 @@ namespace McuSupport {
|
|||||||
namespace Internal {
|
namespace Internal {
|
||||||
namespace Sdk {
|
namespace Sdk {
|
||||||
|
|
||||||
static QString findInProgramFiles(const QString &folder)
|
static FilePath findInProgramFiles(const QString &folder)
|
||||||
{
|
{
|
||||||
for (auto envVar : {"ProgramFiles", "ProgramFiles(x86)", "ProgramW6432"}) {
|
for (auto envVar : {"ProgramFiles", "ProgramFiles(x86)", "ProgramW6432"}) {
|
||||||
if (!qEnvironmentVariableIsSet(envVar))
|
if (!qEnvironmentVariableIsSet(envVar))
|
||||||
continue;
|
continue;
|
||||||
const Utils::FilePath dir =
|
const FilePath dir = FilePath::fromUserInput(qEnvironmentVariable(envVar)) / folder;
|
||||||
Utils::FilePath::fromUserInput(qEnvironmentVariable(envVar) + "/" + folder);
|
|
||||||
if (dir.exists())
|
if (dir.exists())
|
||||||
return dir.toString();
|
return dir;
|
||||||
}
|
}
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
@@ -66,7 +65,7 @@ McuPackage *createQtForMCUsPackage()
|
|||||||
{
|
{
|
||||||
auto result = new McuPackage(
|
auto result = new McuPackage(
|
||||||
McuPackage::tr("Qt for MCUs SDK"),
|
McuPackage::tr("Qt for MCUs SDK"),
|
||||||
QDir::homePath(),
|
FileUtils::homePath(),
|
||||||
FilePath("bin/qmltocpp").withExecutableSuffix().toString(),
|
FilePath("bin/qmltocpp").withExecutableSuffix().toString(),
|
||||||
Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK);
|
Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK);
|
||||||
result->setEnvironmentVariableName("Qul_DIR");
|
result->setEnvironmentVariableName("Qul_DIR");
|
||||||
@@ -92,22 +91,21 @@ static McuToolChainPackage *createArmGccPackage()
|
|||||||
{
|
{
|
||||||
const char envVar[] = "ARMGCC_DIR";
|
const char envVar[] = "ARMGCC_DIR";
|
||||||
|
|
||||||
QString defaultPath;
|
FilePath defaultPath;
|
||||||
if (qEnvironmentVariableIsSet(envVar))
|
if (qEnvironmentVariableIsSet(envVar))
|
||||||
defaultPath = qEnvironmentVariable(envVar);
|
defaultPath = FilePath::fromUserInput(qEnvironmentVariable(envVar));
|
||||||
if (defaultPath.isEmpty() && Utils::HostOsInfo::isWindowsHost()) {
|
if (defaultPath.isEmpty() && HostOsInfo::isWindowsHost()) {
|
||||||
const QDir installDir(findInProgramFiles("/GNU Tools ARM Embedded/"));
|
const FilePath installDir = findInProgramFiles("GNU Tools ARM Embedded");
|
||||||
if (installDir.exists()) {
|
if (installDir.exists()) {
|
||||||
// If GNU Tools installation dir has only one sub dir,
|
// If GNU Tools installation dir has only one sub dir,
|
||||||
// select the sub dir, otherwise the installation dir.
|
// select the sub dir, otherwise the installation dir.
|
||||||
const QFileInfoList subDirs =
|
const FilePaths subDirs = installDir.dirEntries(QDir::Dirs | QDir::NoDotAndDotDot);
|
||||||
installDir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot);
|
|
||||||
if (subDirs.count() == 1)
|
if (subDirs.count() == 1)
|
||||||
defaultPath = subDirs.first().filePath() + '/';
|
defaultPath = subDirs.first();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (defaultPath.isEmpty())
|
if (defaultPath.isEmpty())
|
||||||
defaultPath = QDir::homePath();
|
defaultPath = FileUtils::homePath();
|
||||||
|
|
||||||
const QString detectionPath = Utils::HostOsInfo::withExecutableSuffix("bin/arm-none-eabi-g++");
|
const QString detectionPath = Utils::HostOsInfo::withExecutableSuffix("bin/arm-none-eabi-g++");
|
||||||
const auto versionDetector = new McuPackageExecutableVersionDetector(
|
const auto versionDetector = new McuPackageExecutableVersionDetector(
|
||||||
@@ -131,8 +129,8 @@ static McuToolChainPackage *createGhsToolchainPackage()
|
|||||||
{
|
{
|
||||||
const char envVar[] = "GHS_COMPILER_DIR";
|
const char envVar[] = "GHS_COMPILER_DIR";
|
||||||
|
|
||||||
const QString defaultPath =
|
const FilePath defaultPath = qEnvironmentVariableIsSet(envVar)
|
||||||
qEnvironmentVariableIsSet(envVar) ? qEnvironmentVariable(envVar) : QDir::homePath();
|
? FilePath::fromUserInput(qEnvironmentVariable(envVar)) : FileUtils::homePath();
|
||||||
|
|
||||||
const auto versionDetector = new McuPackageExecutableVersionDetector(
|
const auto versionDetector = new McuPackageExecutableVersionDetector(
|
||||||
Utils::HostOsInfo::withExecutableSuffix("as850"),
|
Utils::HostOsInfo::withExecutableSuffix("as850"),
|
||||||
@@ -155,8 +153,8 @@ static McuToolChainPackage *createGhsArmToolchainPackage()
|
|||||||
{
|
{
|
||||||
const char envVar[] = "GHS_ARM_COMPILER_DIR";
|
const char envVar[] = "GHS_ARM_COMPILER_DIR";
|
||||||
|
|
||||||
const QString defaultPath =
|
const FilePath defaultPath = qEnvironmentVariableIsSet(envVar)
|
||||||
qEnvironmentVariableIsSet(envVar) ? qEnvironmentVariable(envVar) : QDir::homePath();
|
? FilePath::fromUserInput(qEnvironmentVariable(envVar)) : FileUtils::homePath();
|
||||||
|
|
||||||
const auto versionDetector = new McuPackageExecutableVersionDetector(
|
const auto versionDetector = new McuPackageExecutableVersionDetector(
|
||||||
Utils::HostOsInfo::withExecutableSuffix("asarm"),
|
Utils::HostOsInfo::withExecutableSuffix("asarm"),
|
||||||
@@ -179,20 +177,20 @@ static McuToolChainPackage *createIarToolChainPackage()
|
|||||||
{
|
{
|
||||||
const char envVar[] = "IAR_ARM_COMPILER_DIR";
|
const char envVar[] = "IAR_ARM_COMPILER_DIR";
|
||||||
|
|
||||||
QString defaultPath;
|
FilePath defaultPath;
|
||||||
if (qEnvironmentVariableIsSet(envVar))
|
if (qEnvironmentVariableIsSet(envVar))
|
||||||
defaultPath = qEnvironmentVariable(envVar);
|
defaultPath = FilePath::fromUserInput(qEnvironmentVariable(envVar));
|
||||||
else {
|
else {
|
||||||
const ProjectExplorer::ToolChain *tc =
|
const ProjectExplorer::ToolChain *tc =
|
||||||
ProjectExplorer::ToolChainManager::toolChain([](const ProjectExplorer::ToolChain *t) {
|
ProjectExplorer::ToolChainManager::toolChain([](const ProjectExplorer::ToolChain *t) {
|
||||||
return t->typeId() == BareMetal::Constants::IAREW_TOOLCHAIN_TYPEID;
|
return t->typeId() == BareMetal::Constants::IAREW_TOOLCHAIN_TYPEID;
|
||||||
});
|
});
|
||||||
if (tc) {
|
if (tc) {
|
||||||
const Utils::FilePath compilerExecPath = tc->compilerCommand();
|
const FilePath compilerExecPath = tc->compilerCommand();
|
||||||
defaultPath = compilerExecPath.parentDir().parentDir().toString();
|
defaultPath = compilerExecPath.parentDir().parentDir();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
defaultPath = QDir::homePath();
|
defaultPath = FileUtils::homePath();
|
||||||
}
|
}
|
||||||
|
|
||||||
const QString detectionPath = Utils::HostOsInfo::withExecutableSuffix("bin/iccarm");
|
const QString detectionPath = Utils::HostOsInfo::withExecutableSuffix("bin/iccarm");
|
||||||
@@ -217,17 +215,17 @@ static McuPackage *createRGLPackage()
|
|||||||
{
|
{
|
||||||
const char envVar[] = "RGL_DIR";
|
const char envVar[] = "RGL_DIR";
|
||||||
|
|
||||||
QString defaultPath;
|
FilePath defaultPath;
|
||||||
if (qEnvironmentVariableIsSet(envVar)) {
|
if (qEnvironmentVariableIsSet(envVar)) {
|
||||||
defaultPath = qEnvironmentVariable(envVar);
|
defaultPath = FilePath::fromUserInput(qEnvironmentVariable(envVar));
|
||||||
} else if (Utils::HostOsInfo::isWindowsHost()) {
|
} else if (Utils::HostOsInfo::isWindowsHost()) {
|
||||||
defaultPath = QDir::rootPath() + "Renesas_Electronics/D1x_RGL";
|
defaultPath = FilePath::fromUserInput(QDir::rootPath() + "Renesas_Electronics/D1x_RGL");
|
||||||
if (QFileInfo::exists(defaultPath)) {
|
if (defaultPath.exists()) {
|
||||||
const QFileInfoList subDirs =
|
const FilePaths subDirs =
|
||||||
QDir(defaultPath).entryInfoList({QLatin1String("rgl_ghs_D1Mx_*")},
|
defaultPath.dirEntries({QLatin1String("rgl_ghs_D1Mx_*")},
|
||||||
QDir::Dirs | QDir::NoDotAndDotDot);
|
QDir::Dirs | QDir::NoDotAndDotDot);
|
||||||
if (subDirs.count() == 1)
|
if (subDirs.count() == 1)
|
||||||
defaultPath = subDirs.first().filePath() + '/';
|
defaultPath = subDirs.first();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -242,15 +240,15 @@ static McuPackage *createRGLPackage()
|
|||||||
|
|
||||||
static McuPackage *createStm32CubeProgrammerPackage()
|
static McuPackage *createStm32CubeProgrammerPackage()
|
||||||
{
|
{
|
||||||
QString defaultPath = QDir::homePath();
|
FilePath defaultPath = FileUtils::homePath();
|
||||||
const QString cubePath = "/STMicroelectronics/STM32Cube/STM32CubeProgrammer/";
|
const QString cubePath = "STMicroelectronics/STM32Cube/STM32CubeProgrammer";
|
||||||
if (Utils::HostOsInfo::isWindowsHost()) {
|
if (HostOsInfo::isWindowsHost()) {
|
||||||
const QString programPath = findInProgramFiles(cubePath);
|
const FilePath programPath = findInProgramFiles(cubePath);
|
||||||
if (!programPath.isEmpty())
|
if (!programPath.isEmpty())
|
||||||
defaultPath = programPath;
|
defaultPath = programPath;
|
||||||
} else {
|
} else {
|
||||||
const QString programPath = QDir::homePath() + cubePath;
|
const FilePath programPath = FileUtils::homePath() / cubePath;
|
||||||
if (QFileInfo::exists(programPath))
|
if (programPath.exists())
|
||||||
defaultPath = programPath;
|
defaultPath = programPath;
|
||||||
}
|
}
|
||||||
auto result = new McuPackage(
|
auto result = new McuPackage(
|
||||||
@@ -270,18 +268,18 @@ static McuPackage *createMcuXpressoIdePackage()
|
|||||||
{
|
{
|
||||||
const char envVar[] = "MCUXpressoIDE_PATH";
|
const char envVar[] = "MCUXpressoIDE_PATH";
|
||||||
|
|
||||||
QString defaultPath;
|
FilePath defaultPath;
|
||||||
if (qEnvironmentVariableIsSet(envVar)) {
|
if (qEnvironmentVariableIsSet(envVar)) {
|
||||||
defaultPath = qEnvironmentVariable(envVar);
|
defaultPath = FilePath::fromUserInput(qEnvironmentVariable(envVar));
|
||||||
} else if (Utils::HostOsInfo::isWindowsHost()) {
|
} else if (HostOsInfo::isWindowsHost()) {
|
||||||
defaultPath = QDir::rootPath() + "nxp";
|
defaultPath = FilePath::fromString(QDir::rootPath() + "nxp");
|
||||||
if (QFileInfo::exists(defaultPath)) {
|
if (defaultPath.exists()) {
|
||||||
// If default dir has exactly one sub dir that could be the IDE path, pre-select that.
|
// If default dir has exactly one sub dir that could be the IDE path, pre-select that.
|
||||||
const QFileInfoList subDirs =
|
const FilePaths subDirs =
|
||||||
QDir(defaultPath).entryInfoList({QLatin1String("MCUXpressoIDE*")},
|
defaultPath.dirEntries({QLatin1String("MCUXpressoIDE*")},
|
||||||
QDir::Dirs | QDir::NoDotAndDotDot);
|
QDir::Dirs | QDir::NoDotAndDotDot);
|
||||||
if (subDirs.count() == 1)
|
if (subDirs.count() == 1)
|
||||||
defaultPath = subDirs.first().filePath() + '/';
|
defaultPath = subDirs.first();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
defaultPath = "/usr/local/mcuxpressoide/";
|
defaultPath = "/usr/local/mcuxpressoide/";
|
||||||
@@ -301,21 +299,20 @@ static McuPackage *createCypressProgrammerPackage()
|
|||||||
{
|
{
|
||||||
const char envVar[] = "CYPRESS_AUTO_FLASH_UTILITY_DIR";
|
const char envVar[] = "CYPRESS_AUTO_FLASH_UTILITY_DIR";
|
||||||
|
|
||||||
QString defaultPath;
|
FilePath defaultPath;
|
||||||
if (qEnvironmentVariableIsSet(envVar)) {
|
if (qEnvironmentVariableIsSet(envVar)) {
|
||||||
defaultPath = qEnvironmentVariable(envVar);
|
defaultPath = FilePath::fromUserInput(qEnvironmentVariable(envVar));
|
||||||
} else if (Utils::HostOsInfo::isWindowsHost()) {
|
} else if (HostOsInfo::isWindowsHost()) {
|
||||||
auto candidate = findInProgramFiles(QLatin1String("/Cypress/Cypress Auto Flash Utility 1.0/"));
|
FilePath candidate = findInProgramFiles("Cypress/Cypress Auto Flash Utility 1.0");
|
||||||
if (QFileInfo::exists(candidate)) {
|
if (candidate.exists()) {
|
||||||
defaultPath = candidate;
|
defaultPath = candidate;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
defaultPath = QLatin1String("/usr");
|
defaultPath = "/usr";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (defaultPath.isEmpty()) {
|
if (defaultPath.isEmpty())
|
||||||
defaultPath = QDir::homePath();
|
defaultPath = FileUtils::homePath();
|
||||||
}
|
|
||||||
|
|
||||||
auto result = new McuPackage(
|
auto result = new McuPackage(
|
||||||
"Cypress Auto Flash Utility",
|
"Cypress Auto Flash Utility",
|
||||||
@@ -378,18 +375,16 @@ static McuPackage *createBoardSdkPackage(const McuTargetDescription& desc)
|
|||||||
};
|
};
|
||||||
const QString sdkName = desc.boardSdkName.isEmpty() ? generateSdkName(desc.boardSdkEnvVar) : desc.boardSdkName;
|
const QString sdkName = desc.boardSdkName.isEmpty() ? generateSdkName(desc.boardSdkEnvVar) : desc.boardSdkName;
|
||||||
|
|
||||||
const QString defaultPath = [&] {
|
const FilePath defaultPath = [&] {
|
||||||
const auto envVar = desc.boardSdkEnvVar.toLatin1();
|
const auto envVar = desc.boardSdkEnvVar.toLatin1();
|
||||||
if (qEnvironmentVariableIsSet(envVar)) {
|
if (qEnvironmentVariableIsSet(envVar))
|
||||||
return qEnvironmentVariable(envVar);
|
return FilePath::fromUserInput(qEnvironmentVariable(envVar));
|
||||||
}
|
|
||||||
if (!desc.boardSdkDefaultPath.isEmpty()) {
|
if (!desc.boardSdkDefaultPath.isEmpty()) {
|
||||||
QString defaultPath = QDir::rootPath() + desc.boardSdkDefaultPath;
|
FilePath defaultPath = FilePath::fromUserInput(QDir::rootPath() + desc.boardSdkDefaultPath);
|
||||||
if (QFileInfo::exists(defaultPath)) {
|
if (defaultPath.exists())
|
||||||
return defaultPath;
|
return defaultPath;
|
||||||
}
|
}
|
||||||
}
|
return FileUtils::homePath();
|
||||||
return QDir::homePath();
|
|
||||||
}();
|
}();
|
||||||
|
|
||||||
const auto versionDetector = generatePackageVersionDetector(desc.boardSdkEnvVar);
|
const auto versionDetector = generatePackageVersionDetector(desc.boardSdkEnvVar);
|
||||||
@@ -404,18 +399,18 @@ static McuPackage *createBoardSdkPackage(const McuTargetDescription& desc)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
static McuPackage *createFreeRTOSSourcesPackage(const QString &envVar, const QString &boardSdkDir,
|
static McuPackage *createFreeRTOSSourcesPackage(const QString &envVar, const FilePath &boardSdkDir,
|
||||||
const QString &freeRTOSBoardSdkSubDir)
|
const QString &freeRTOSBoardSdkSubDir)
|
||||||
{
|
{
|
||||||
const QString envVarPrefix = envVar.chopped(int(strlen("_FREERTOS_DIR")));
|
const QString envVarPrefix = envVar.chopped(int(strlen("_FREERTOS_DIR")));
|
||||||
|
|
||||||
QString defaultPath;
|
FilePath defaultPath;
|
||||||
if (qEnvironmentVariableIsSet(envVar.toLatin1()))
|
if (qEnvironmentVariableIsSet(envVar.toLatin1()))
|
||||||
defaultPath = qEnvironmentVariable(envVar.toLatin1());
|
defaultPath = FilePath::fromUserInput(qEnvironmentVariable(envVar.toLatin1()));
|
||||||
else if (!boardSdkDir.isEmpty() && !freeRTOSBoardSdkSubDir.isEmpty())
|
else if (!boardSdkDir.isEmpty() && !freeRTOSBoardSdkSubDir.isEmpty())
|
||||||
defaultPath = boardSdkDir + "/" + freeRTOSBoardSdkSubDir;
|
defaultPath = boardSdkDir / freeRTOSBoardSdkSubDir;
|
||||||
else
|
else
|
||||||
defaultPath = QDir::homePath();
|
defaultPath = FileUtils::homePath();
|
||||||
|
|
||||||
auto result = new McuPackage(
|
auto result = new McuPackage(
|
||||||
QString::fromLatin1("FreeRTOS Sources (%1)").arg(envVarPrefix),
|
QString::fromLatin1("FreeRTOS Sources (%1)").arg(envVarPrefix),
|
||||||
@@ -473,7 +468,7 @@ protected:
|
|||||||
if (vendorPkgs.contains(desc.platformVendor))
|
if (vendorPkgs.contains(desc.platformVendor))
|
||||||
required3rdPartyPkgs.push_back(vendorPkgs.value(desc.platformVendor));
|
required3rdPartyPkgs.push_back(vendorPkgs.value(desc.platformVendor));
|
||||||
|
|
||||||
QString boardSdkDefaultPath;
|
FilePath boardSdkDefaultPath;
|
||||||
if (!desc.boardSdkEnvVar.isEmpty()) {
|
if (!desc.boardSdkEnvVar.isEmpty()) {
|
||||||
if (!boardSdkPkgs.contains(desc.boardSdkEnvVar)) {
|
if (!boardSdkPkgs.contains(desc.boardSdkEnvVar)) {
|
||||||
auto boardSdkPkg = desc.boardSdkEnvVar != "RGL_DIR"
|
auto boardSdkPkg = desc.boardSdkEnvVar != "RGL_DIR"
|
||||||
@@ -551,7 +546,7 @@ protected:
|
|||||||
required3rdPartyPkgs.push_back(vendorPkgs.value(desc.platformVendor));
|
required3rdPartyPkgs.push_back(vendorPkgs.value(desc.platformVendor));
|
||||||
|
|
||||||
// Board SDK specific settings
|
// Board SDK specific settings
|
||||||
QString boardSdkDefaultPath;
|
FilePath boardSdkDefaultPath;
|
||||||
if (!desc.boardSdkEnvVar.isEmpty()) {
|
if (!desc.boardSdkEnvVar.isEmpty()) {
|
||||||
if (!boardSdkPkgs.contains(desc.boardSdkEnvVar)) {
|
if (!boardSdkPkgs.contains(desc.boardSdkEnvVar)) {
|
||||||
auto boardSdkPkg = createBoardSdkPackage(desc);
|
auto boardSdkPkg = createBoardSdkPackage(desc);
|
||||||
|
|||||||
Reference in New Issue
Block a user