McuSupport: Organize namespaces, separate legacy constants

qtc9 will use new implementation for qtForMCUs 2.3 and newer.
Legacy implementation will be used for older versions.

Change-Id: Ibb2919f25d03d6445b8328e20316d4f88203a463
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Piotr Mućko
2022-06-17 17:15:17 +02:00
parent 7e17119e0a
commit cf147aa4b6
17 changed files with 240 additions and 237 deletions

View File

@@ -38,9 +38,7 @@ class FilePath;
namespace McuSupport::Internal { namespace McuSupport::Internal {
namespace Sdk {
struct McuTargetDescription; struct McuTargetDescription;
} //namespace Sdk
class McuAbstractTargetFactory class McuAbstractTargetFactory
{ {
@@ -48,7 +46,7 @@ public:
using Ptr = std::unique_ptr<McuAbstractTargetFactory>; using Ptr = std::unique_ptr<McuAbstractTargetFactory>;
virtual ~McuAbstractTargetFactory() = default; virtual ~McuAbstractTargetFactory() = default;
virtual QPair<Targets, Packages> createTargets(const Sdk::McuTargetDescription &, virtual QPair<Targets, Packages> createTargets(const McuTargetDescription &,
const Utils::FilePath &qtForMcuPath) const Utils::FilePath &qtForMcuPath)
= 0; = 0;
using AdditionalPackages using AdditionalPackages

View File

@@ -28,12 +28,12 @@
#include <QRegularExpression> #include <QRegularExpression>
namespace McuSupport { namespace McuSupport::Internal {
Internal::McuTarget::OS deduceOperatingSystem(const Internal::Sdk::McuTargetDescription &desc) McuTarget::OS deduceOperatingSystem(const McuTargetDescription &desc)
{ {
using OS = Internal::McuTarget::OS; using OS = McuTarget::OS;
using TargetType = Internal::Sdk::McuTargetDescription::TargetType; using TargetType = McuTargetDescription::TargetType;
if (desc.platform.type == TargetType::Desktop) if (desc.platform.type == TargetType::Desktop)
return OS::Desktop; return OS::Desktop;
else if (!desc.freeRTOS.envVar.isEmpty()) else if (!desc.freeRTOS.envVar.isEmpty())
@@ -48,4 +48,4 @@ QString removeRtosSuffix(const QString &environmentVariable)
return result.replace(freeRtosSuffix, QString{}); return result.replace(freeRtosSuffix, QString{});
} }
} //namespace McuSupport } // namespace McuSupport::Internal

View File

@@ -29,13 +29,11 @@
#include <QRegularExpression> #include <QRegularExpression>
namespace McuSupport { namespace McuSupport::Internal {
namespace Internal::Sdk {
struct McuTargetDescription; struct McuTargetDescription;
}
Internal::McuTarget::OS deduceOperatingSystem(const Internal::Sdk::McuTargetDescription &); McuTarget::OS deduceOperatingSystem(const McuTargetDescription &);
QString removeRtosSuffix(const QString &environmentVariable); QString removeRtosSuffix(const QString &environmentVariable);
}; // namespace McuSupport } // namespace McuSupport::Internal

View File

@@ -255,7 +255,7 @@ public:
if (!mcuTarget->toolChainPackage()->isDesktopToolchain()) { if (!mcuTarget->toolChainPackage()->isDesktopToolchain()) {
const FilePath cMakeToolchainFile = mcuTarget->toolChainFilePackage()->path(); const FilePath cMakeToolchainFile = mcuTarget->toolChainFilePackage()->path();
configMap.insert(Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE, configMap.insert(Legacy::Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE,
cMakeToolchainFile.toString().toUtf8()); cMakeToolchainFile.toString().toUtf8());
if (!cMakeToolchainFile.exists()) { if (!cMakeToolchainFile.exists()) {
printMessage( printMessage(
@@ -365,7 +365,7 @@ QString generateKitNameFromTarget(const McuTarget *mcuTarget)
QVersionNumber kitQulVersion(const Kit *kit) QVersionNumber kitQulVersion(const Kit *kit)
{ {
return QVersionNumber::fromString( return QVersionNumber::fromString(
kit->value(McuSupport::Constants::KIT_MCUTARGET_SDKVERSION_KEY).toString()); kit->value(Constants::KIT_MCUTARGET_SDKVERSION_KEY).toString());
} }
// Kit Information // Kit Information
@@ -449,7 +449,7 @@ QList<Kit *> outdatedKits()
// Maintenance // Maintenance
void createAutomaticKits(const SettingsHandler::Ptr &settingsHandler) void createAutomaticKits(const SettingsHandler::Ptr &settingsHandler)
{ {
McuPackagePtr qtForMCUsPackage{Sdk::createQtForMCUsPackage(settingsHandler)}; McuPackagePtr qtForMCUsPackage{createQtForMCUsPackage(settingsHandler)};
const auto createKits = [qtForMCUsPackage, settingsHandler]() { const auto createKits = [qtForMCUsPackage, settingsHandler]() {
if (settingsHandler->isAutomaticKitCreationEnabled()) { if (settingsHandler->isAutomaticKitCreationEnabled()) {
@@ -494,7 +494,7 @@ void createAutomaticKits(const SettingsHandler::Ptr &settingsHandler)
} }
FilePath dir = qtForMCUsPackage->path(); FilePath dir = qtForMCUsPackage->path();
McuSdkRepository repo{Sdk::targetsAndPackages(dir, settingsHandler)}; McuSdkRepository repo{targetsAndPackages(dir, settingsHandler)};
bool needsUpgrade = false; bool needsUpgrade = false;
for (const auto &target : qAsConst(repo.mcuTargets)) { for (const auto &target : qAsConst(repo.mcuTargets)) {
@@ -530,10 +530,10 @@ void upgradeKitsByCreatingNewPackage(const SettingsHandler::Ptr &settingsHandler
if (upgradeOption == UpgradeOption::Ignore) if (upgradeOption == UpgradeOption::Ignore)
return; return;
McuPackagePtr qtForMCUsPackage{Sdk::createQtForMCUsPackage(settingsHandler)}; McuPackagePtr qtForMCUsPackage{createQtForMCUsPackage(settingsHandler)};
auto dir = qtForMCUsPackage->path(); auto dir = qtForMCUsPackage->path();
McuSdkRepository repo{Sdk::targetsAndPackages(dir, settingsHandler)}; McuSdkRepository repo{targetsAndPackages(dir, settingsHandler)};
for (const auto &target : qAsConst(repo.mcuTargets)) { for (const auto &target : qAsConst(repo.mcuTargets)) {
if (!matchingKits(target.get(), qtForMCUsPackage).empty()) if (!matchingKits(target.get(), qtForMCUsPackage).empty())
@@ -572,10 +572,10 @@ void upgradeKitInPlace(ProjectExplorer::Kit *kit,
// update the corresponding cmake variables in all existing kits // update the corresponding cmake variables in all existing kits
void updatePathsInExistingKits(const SettingsHandler::Ptr &settingsHandler) void updatePathsInExistingKits(const SettingsHandler::Ptr &settingsHandler)
{ {
McuPackagePtr qtForMCUsPackage{Sdk::createQtForMCUsPackage(settingsHandler)}; McuPackagePtr qtForMCUsPackage{createQtForMCUsPackage(settingsHandler)};
FilePath dir = qtForMCUsPackage->path(); FilePath dir = qtForMCUsPackage->path();
McuSdkRepository repo{Sdk::targetsAndPackages(dir, settingsHandler)}; McuSdkRepository repo{targetsAndPackages(dir, settingsHandler)};
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.get())) { for (auto *kit : kitsWithMismatchedDependencies(target.get())) {
@@ -657,11 +657,11 @@ void fixExistingKits(const SettingsHandler::Ptr &settingsHandler)
} }
// Fix kit dependencies for known targets // Fix kit dependencies for known targets
McuPackagePtr qtForMCUsPackage{Sdk::createQtForMCUsPackage(settingsHandler)}; McuPackagePtr qtForMCUsPackage{createQtForMCUsPackage(settingsHandler)};
qtForMCUsPackage->updateStatus(); qtForMCUsPackage->updateStatus();
if (qtForMCUsPackage->isValidStatus()) { if (qtForMCUsPackage->isValidStatus()) {
FilePath dir = qtForMCUsPackage->path(); FilePath dir = qtForMCUsPackage->path();
McuSdkRepository repo{Sdk::targetsAndPackages(dir, settingsHandler)}; McuSdkRepository repo{targetsAndPackages(dir, settingsHandler)};
for (const auto &target : qAsConst(repo.mcuTargets)) for (const auto &target : qAsConst(repo.mcuTargets))
for (auto kit : existingKits(target.get())) { for (auto kit : existingKits(target.get())) {
if (McuDependenciesKitAspect::dependencies(kit).isEmpty()) { if (McuDependenciesKitAspect::dependencies(kit).isEmpty()) {

View File

@@ -25,11 +25,14 @@
#pragma once #pragma once
namespace McuSupport::Constants { namespace McuSupport::Internal::Legacy::Constants {
const char QT_FOR_MCUS_SDK_PACKAGE_VALIDATION_PATH[] = "bin/qmltocpp"; const char QT_FOR_MCUS_SDK_PACKAGE_VALIDATION_PATH[] = "bin/qmltocpp";
const char QUL_TOOLCHAIN_CMAKE_DIR[] = "lib/cmake/Qul/toolchain/"; const char QUL_TOOLCHAIN_CMAKE_DIR[] = "lib/cmake/Qul/toolchain/";
const char QUL_ENV_VAR[] = "Qul_ROOT"; const char QUL_ENV_VAR[] = "Qul_ROOT";
const char BOARD_SDK_CMAKE_VAR[] = "QUL_BOARD_SDK_DIR"; const char BOARD_SDK_CMAKE_VAR[] = "QUL_BOARD_SDK_DIR";
const char SETTINGS_KEY_FREERTOS_PREFIX[]{"FreeRTOSSourcePackage_"};
const char TOOLCHAIN_DIR_CMAKE_VARIABLE[]{"QUL_TARGET_TOOLCHAIN_DIR"};
const char TOOLCHAIN_FILE_CMAKE_VARIABLE[]{"CMAKE_TOOLCHAIN_FILE"};
} // namespace McuSupport::Constants } // namespace McuSupport::Internal::Legacy::Constants

View File

@@ -25,8 +25,7 @@
#pragma once #pragma once
namespace McuSupport { namespace McuSupport::Internal::Constants {
namespace Constants {
const char DEVICE_TYPE[]{"McuSupport.DeviceType"}; const char DEVICE_TYPE[]{"McuSupport.DeviceType"};
const char DEVICE_ID[]{"McuSupport.Device"}; const char DEVICE_ID[]{"McuSupport.Device"};
@@ -43,12 +42,7 @@ const char KIT_MCUTARGET_TOOLCHAIN_KEY[]{"McuSupport.McuTargetToolchain"};
const char SETTINGS_GROUP[]{"McuSupport"}; const char SETTINGS_GROUP[]{"McuSupport"};
const char SETTINGS_KEY_PACKAGE_PREFIX[]{"Package_"}; const char SETTINGS_KEY_PACKAGE_PREFIX[]{"Package_"};
const char SETTINGS_KEY_FREERTOS_PREFIX[]{"FreeRTOSSourcePackage_"};
const char SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK[]{"QtForMCUsSdk"}; // Key known by SDK installer const char SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK[]{"QtForMCUsSdk"}; // Key known by SDK installer
const char SETTINGS_KEY_AUTOMATIC_KIT_CREATION[]{"AutomaticKitCreation"}; const char SETTINGS_KEY_AUTOMATIC_KIT_CREATION[]{"AutomaticKitCreation"};
const char TOOLCHAIN_DIR_CMAKE_VARIABLE[]{"QUL_TARGET_TOOLCHAIN_DIR"}; } // namespace McuSupport::Internal::Constants
const char TOOLCHAIN_FILE_CMAKE_VARIABLE[]{"CMAKE_TOOLCHAIN_FILE"};
} // namespace Constants
} // namespace McuSupport

View File

@@ -27,6 +27,7 @@
#include "mcukitinformation.h" #include "mcukitinformation.h"
#include "mcukitmanager.h" #include "mcukitmanager.h"
#include "mculegacyconstants.h"
#include "mcupackage.h" #include "mcupackage.h"
#include "mcusupportconstants.h" #include "mcusupportconstants.h"
#include "mcusupportplugin.h" #include "mcusupportplugin.h"
@@ -46,14 +47,13 @@
#include <QMessageBox> #include <QMessageBox>
#include <QPushButton> #include <QPushButton>
using namespace ProjectExplorer;
using namespace Utils; using namespace Utils;
namespace McuSupport::Internal { namespace McuSupport::Internal {
McuSupportOptions::McuSupportOptions(const SettingsHandler::Ptr &settingsHandler, QObject *parent) McuSupportOptions::McuSupportOptions(const SettingsHandler::Ptr &settingsHandler, QObject *parent)
: QObject(parent) : QObject(parent)
, qtForMCUsSdkPackage(Sdk::createQtForMCUsPackage(settingsHandler)) , qtForMCUsSdkPackage(createQtForMCUsPackage(settingsHandler))
, settingsHandler(settingsHandler) , settingsHandler(settingsHandler)
{ {
connect(qtForMCUsSdkPackage.get(), connect(qtForMCUsSdkPackage.get(),
@@ -122,7 +122,7 @@ void McuSupportOptions::setQulDir(const FilePath &dir)
{ {
qtForMCUsSdkPackage->updateStatus(); qtForMCUsSdkPackage->updateStatus();
if (qtForMCUsSdkPackage->isValidStatus()) if (qtForMCUsSdkPackage->isValidStatus())
sdkRepository = Sdk::targetsAndPackages(dir, settingsHandler); sdkRepository = targetsAndPackages(dir, settingsHandler);
else else
sdkRepository = McuSdkRepository{}; sdkRepository = McuSdkRepository{};
for (const auto &package : qAsConst(sdkRepository.packages)) for (const auto &package : qAsConst(sdkRepository.packages))

View File

@@ -212,11 +212,11 @@ void McuSupportOptionsWidget::updateStatus()
m_mcuTargetsInfoLabel->setType(Utils::InfoLabel::NotOk); m_mcuTargetsInfoLabel->setType(Utils::InfoLabel::NotOk);
const Utils::FilePath sdkPath = m_options.qtForMCUsSdkPackage->basePath(); const Utils::FilePath sdkPath = m_options.qtForMCUsSdkPackage->basePath();
QString deprecationMessage; QString deprecationMessage;
if (Sdk::checkDeprecatedSdkError(sdkPath, deprecationMessage)) if (checkDeprecatedSdkError(sdkPath, deprecationMessage))
m_mcuTargetsInfoLabel->setText(deprecationMessage); m_mcuTargetsInfoLabel->setText(deprecationMessage);
else else
m_mcuTargetsInfoLabel->setText(tr("No valid kit descriptions found at %1.") m_mcuTargetsInfoLabel->setText(tr("No valid kit descriptions found at %1.")
.arg(Sdk::kitsPath(sdkPath).toUserOutput())); .arg(kitsPath(sdkPath).toUserOutput()));
} }
} }

View File

@@ -57,14 +57,27 @@
using namespace Utils; using namespace Utils;
namespace McuSupport { namespace McuSupport::Internal {
namespace Internal {
namespace Sdk {
namespace { namespace {
const char CMAKE_ENTRIES[]{"cmakeEntries"}; const char CMAKE_ENTRIES[]{"cmakeEntries"};
} // namespace } // namespace
McuPackagePtr createQtForMCUsPackage(const SettingsHandler::Ptr &settingsHandler)
{
return McuPackagePtr{
new McuPackage(settingsHandler,
McuPackage::tr("Qt for MCUs SDK"),
FileUtils::homePath(), // defaultPath
FilePath(Legacy::Constants::QT_FOR_MCUS_SDK_PACKAGE_VALIDATION_PATH)
.withExecutableSuffix(), // detectionPath
Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK, // settingsKey
QStringLiteral("Qul_ROOT"), // cmakeVarName
QStringLiteral("Qul_DIR"))}; // envVarName
}
namespace Legacy {
static FilePath findInProgramFiles(const QString &folder) static FilePath findInProgramFiles(const QString &folder)
{ {
for (auto envVar : {"ProgramFiles", "ProgramFiles(x86)", "ProgramW6432"}) { for (auto envVar : {"ProgramFiles", "ProgramFiles(x86)", "ProgramW6432"}) {
@@ -77,19 +90,6 @@ static FilePath findInProgramFiles(const QString &folder)
return {}; return {};
} }
McuPackagePtr createQtForMCUsPackage(const SettingsHandler::Ptr &settingsHandler)
{
return McuPackagePtr{
new McuPackage(settingsHandler,
McuPackage::tr("Qt for MCUs SDK"),
FileUtils::homePath(), // defaultPath
FilePath(Constants::QT_FOR_MCUS_SDK_PACKAGE_VALIDATION_PATH)
.withExecutableSuffix(), // detectionPath
Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK, // settingsKey
QStringLiteral("Qul_ROOT"), // cmakeVarName
QStringLiteral("Qul_DIR"))}; // envVarName
}
static McuPackageVersionDetector *generatePackageVersionDetector(const QString &envVar) static McuPackageVersionDetector *generatePackageVersionDetector(const QString &envVar)
{ {
if (envVar.startsWith("EVK")) if (envVar.startsWith("EVK"))
@@ -458,35 +458,38 @@ static McuPackagePtr createRenesasProgrammerPackage(const SettingsHandler::Ptr &
envVar)}; // env var envVar)}; // env var
} }
} // namespace Legacy
static McuAbstractTargetFactory::Ptr createFactory(bool isLegacy, static McuAbstractTargetFactory::Ptr createFactory(bool isLegacy,
const SettingsHandler::Ptr &settingsHandler, const SettingsHandler::Ptr &settingsHandler,
const FilePath &qtMcuSdkPath) const FilePath &qtMcuSdkPath)
{ {
McuAbstractTargetFactory::Ptr result; McuAbstractTargetFactory::Ptr result;
if (isLegacy) { if (isLegacy) {
static const QHash<QString, ToolchainCompilerCreator> toolchainCreators = { static const QHash<QString, Legacy::ToolchainCompilerCreator> toolchainCreators = {
{{"armgcc"}, {[settingsHandler](const QStringList &versions) { {{"armgcc"}, {[settingsHandler](const QStringList &versions) {
return createArmGccToolchainPackage(settingsHandler, versions); return Legacy::createArmGccToolchainPackage(settingsHandler, versions);
}}}, }}},
{{"greenhills"}, {{"greenhills"},
[settingsHandler](const QStringList &versions) { [settingsHandler](const QStringList &versions) {
return createGhsToolchainPackage(settingsHandler, versions); return Legacy::createGhsToolchainPackage(settingsHandler, versions);
}}, }},
{{"iar"}, {[settingsHandler](const QStringList &versions) { {{"iar"}, {[settingsHandler](const QStringList &versions) {
return createIarToolChainPackage(settingsHandler, versions); return Legacy::createIarToolChainPackage(settingsHandler, versions);
}}}, }}},
{{"msvc"}, {[settingsHandler](const QStringList &versions) { {{"msvc"}, {[settingsHandler](const QStringList &versions) {
return createMsvcToolChainPackage(settingsHandler, versions); return Legacy::createMsvcToolChainPackage(settingsHandler, versions);
}}}, }}},
{{"gcc"}, {[settingsHandler](const QStringList &versions) { {{"gcc"}, {[settingsHandler](const QStringList &versions) {
return createGccToolChainPackage(settingsHandler, versions); return Legacy::createGccToolChainPackage(settingsHandler, versions);
}}}, }}},
{{"arm-greenhills"}, {[settingsHandler](const QStringList &versions) { {{"arm-greenhills"}, {[settingsHandler](const QStringList &versions) {
return createGhsArmToolchainPackage(settingsHandler, versions); return Legacy::createGhsArmToolchainPackage(settingsHandler, versions);
}}}, }}},
}; };
const FilePath toolchainFilePrefix = qtMcuSdkPath / Constants::QUL_TOOLCHAIN_CMAKE_DIR; const FilePath toolchainFilePrefix = qtMcuSdkPath
/ Legacy::Constants::QUL_TOOLCHAIN_CMAKE_DIR;
static const QHash<QString, McuPackagePtr> toolchainFiles = { static const QHash<QString, McuPackagePtr> toolchainFiles = {
{{"armgcc"}, {{"armgcc"},
McuPackagePtr{new McuPackage{settingsHandler, McuPackagePtr{new McuPackage{settingsHandler,
@@ -494,7 +497,7 @@ static McuAbstractTargetFactory::Ptr createFactory(bool isLegacy,
toolchainFilePrefix / "armgcc.cmake", toolchainFilePrefix / "armgcc.cmake",
{}, {},
{}, {},
Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE, Legacy::Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE,
{}}}}, {}}}},
{{"iar"}, {{"iar"},
@@ -503,7 +506,7 @@ static McuAbstractTargetFactory::Ptr createFactory(bool isLegacy,
toolchainFilePrefix / "iar.cmake", toolchainFilePrefix / "iar.cmake",
{}, {},
{}, {},
Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE, Legacy::Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE,
{}}}}, {}}}},
{"greenhills", {"greenhills",
McuPackagePtr{new McuPackage{settingsHandler, McuPackagePtr{new McuPackage{settingsHandler,
@@ -511,7 +514,7 @@ static McuAbstractTargetFactory::Ptr createFactory(bool isLegacy,
toolchainFilePrefix / "ghs.cmake", toolchainFilePrefix / "ghs.cmake",
{}, {},
{}, {},
Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE, Legacy::Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE,
{}}}}, {}}}},
{"arm-greenhills", {"arm-greenhills",
McuPackagePtr{new McuPackage{settingsHandler, McuPackagePtr{new McuPackage{settingsHandler,
@@ -519,23 +522,23 @@ static McuAbstractTargetFactory::Ptr createFactory(bool isLegacy,
toolchainFilePrefix / "arm-ghs.cmake", toolchainFilePrefix / "arm-ghs.cmake",
{}, {},
{}, {},
Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE, Legacy::Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE,
{}}}}, {}}}},
}; };
// Note: the vendor name (the key of the hash) is case-sensitive. It has to match the "platformVendor" key in the // Note: the vendor name (the key of the hash) is case-sensitive. It has to match the "platformVendor" key in the
// json file. // json file.
static const QHash<QString, McuPackagePtr> vendorPkgs = { static const QHash<QString, McuPackagePtr> vendorPkgs = {
{{"ST"}, McuPackagePtr{createStm32CubeProgrammerPackage(settingsHandler)}}, {{"ST"}, McuPackagePtr{Legacy::createStm32CubeProgrammerPackage(settingsHandler)}},
{{"NXP"}, McuPackagePtr{createMcuXpressoIdePackage(settingsHandler)}}, {{"NXP"}, McuPackagePtr{Legacy::createMcuXpressoIdePackage(settingsHandler)}},
{{"CYPRESS"}, McuPackagePtr{createCypressProgrammerPackage(settingsHandler)}}, {{"CYPRESS"}, McuPackagePtr{Legacy::createCypressProgrammerPackage(settingsHandler)}},
{{"RENESAS"}, McuPackagePtr{createRenesasProgrammerPackage(settingsHandler)}}, {{"RENESAS"}, McuPackagePtr{Legacy::createRenesasProgrammerPackage(settingsHandler)}},
}; };
result = std::make_unique<McuTargetFactoryLegacy>(toolchainCreators, result = std::make_unique<Legacy::McuTargetFactory>(toolchainCreators,
toolchainFiles, toolchainFiles,
vendorPkgs, vendorPkgs,
settingsHandler); settingsHandler);
} else { } else {
result = std::make_unique<McuTargetFactory>(settingsHandler); result = std::make_unique<McuTargetFactory>(settingsHandler);
} }
@@ -779,6 +782,4 @@ McuSdkRepository targetsAndPackages(const Utils::FilePath &qtForMCUSdkPath,
return repo; return repo;
} }
} // namespace Sdk } // namespace McuSupport::Internal
} // namespace Internal
} // namespace McuSupport

View File

@@ -28,8 +28,6 @@
#include "mcusupport_global.h" #include "mcusupport_global.h"
#include "settingshandler.h" #include "settingshandler.h"
#include <utils/filepath.h>
namespace Utils { namespace Utils {
class FilePath; class FilePath;
} // namespace Utils } // namespace Utils
@@ -43,9 +41,6 @@ class McuPackage;
class McuSdkRepository; class McuSdkRepository;
class McuTarget; class McuTarget;
class McuToolChainPackage; class McuToolChainPackage;
namespace Sdk {
struct McuTargetDescription; struct McuTargetDescription;
McuPackagePtr createQtForMCUsPackage(const SettingsHandler::Ptr &); McuPackagePtr createQtForMCUsPackage(const SettingsHandler::Ptr &);
@@ -62,6 +57,8 @@ McuSdkRepository targetsFromDescriptions(const QList<McuTargetDescription> &,
Utils::FilePath kitsPath(const Utils::FilePath &dir); Utils::FilePath kitsPath(const Utils::FilePath &dir);
namespace Legacy {
McuPackagePtr createUnsupportedToolChainFilePackage(const SettingsHandler::Ptr &, McuPackagePtr createUnsupportedToolChainFilePackage(const SettingsHandler::Ptr &,
const Utils::FilePath &qtMcuSdkPath); const Utils::FilePath &qtMcuSdkPath);
McuToolChainPackagePtr createUnsupportedToolChainPackage(const SettingsHandler::Ptr &); McuToolChainPackagePtr createUnsupportedToolChainPackage(const SettingsHandler::Ptr &);
@@ -80,5 +77,5 @@ McuPackagePtr createFreeRTOSSourcesPackage(const SettingsHandler::Ptr &settingsH
const Utils::FilePath &boardSdkDir, const Utils::FilePath &boardSdkDir,
const Utils::FilePath &freeRTOSBoardSdkSubDir); const Utils::FilePath &freeRTOSBoardSdkSubDir);
} // namespace Sdk } // namespace Legacy
} // namespace McuSupport::Internal } // namespace McuSupport::Internal

View File

@@ -31,7 +31,7 @@
#include <QVector> #include <QVector>
#include <QVersionNumber> #include <QVersionNumber>
namespace McuSupport::Internal::Sdk { namespace McuSupport::Internal {
struct PackageDescription struct PackageDescription
{ {
@@ -76,6 +76,6 @@ struct McuTargetDescription
} freeRTOS; } freeRTOS;
}; };
} // namespace McuSupport::Internal::Sdk } // namespace McuSupport::Internal
Q_DECLARE_METATYPE(McuSupport::Internal::Sdk::McuTargetDescription) Q_DECLARE_METATYPE(McuSupport::Internal::McuTargetDescription)

View File

@@ -38,9 +38,6 @@
namespace McuSupport::Internal { namespace McuSupport::Internal {
using Sdk::McuTargetDescription;
using Sdk::PackageDescription;
bool isToolchainDescriptionValid(const McuTargetDescription::Toolchain &t) bool isToolchainDescriptionValid(const McuTargetDescription::Toolchain &t)
{ {
return !t.id.isEmpty() && !t.compiler.cmakeVar.isEmpty() && !t.file.cmakeVar.isEmpty(); return !t.id.isEmpty() && !t.compiler.cmakeVar.isEmpty() && !t.file.cmakeVar.isEmpty();

View File

@@ -31,19 +31,17 @@
namespace McuSupport::Internal { namespace McuSupport::Internal {
namespace Sdk {
struct PackageDescription; struct PackageDescription;
} // namespace Sdk
class McuTargetFactory : public McuAbstractTargetFactory class McuTargetFactory : public McuAbstractTargetFactory
{ {
public: public:
explicit McuTargetFactory(const SettingsHandler::Ptr &); explicit McuTargetFactory(const SettingsHandler::Ptr &);
QPair<Targets, Packages> createTargets(const Sdk::McuTargetDescription &, QPair<Targets, Packages> createTargets(const McuTargetDescription &,
const Utils::FilePath &qtForMCUSdkPath) override; const Utils::FilePath &qtForMCUSdkPath) override;
Packages createPackages(const Sdk::McuTargetDescription &); Packages createPackages(const McuTargetDescription &);
McuToolChainPackage *createToolchain(const Sdk::McuTargetDescription::Toolchain &); McuToolChainPackage *createToolchain(const McuTargetDescription::Toolchain &);
McuPackagePtr createPackage(const Sdk::PackageDescription &); McuPackagePtr createPackage(const PackageDescription &);
private: private:
SettingsHandler::Ptr settingsHandler; SettingsHandler::Ptr settingsHandler;

View File

@@ -34,21 +34,20 @@
#include <utils/fileutils.h> #include <utils/fileutils.h>
#include <QVersionNumber> #include <QVersionNumber>
namespace McuSupport::Internal { namespace McuSupport::Internal::Legacy {
McuTargetFactoryLegacy::McuTargetFactoryLegacy( McuTargetFactory::McuTargetFactory(const QHash<QString, ToolchainCompilerCreator> &toolchainCreators,
const QHash<QString, ToolchainCompilerCreator> &toolchainCreators, const QHash<QString, McuPackagePtr> &toolchainFiles,
const QHash<QString, McuPackagePtr> &toolchainFiles, const QHash<QString, McuPackagePtr> &vendorPkgs,
const QHash<QString, McuPackagePtr> &vendorPkgs, const SettingsHandler::Ptr &settingsHandler)
const SettingsHandler::Ptr &settingsHandler)
: toolchainCreators(toolchainCreators) : toolchainCreators(toolchainCreators)
, toolchainFiles(toolchainFiles) , toolchainFiles(toolchainFiles)
, vendorPkgs(vendorPkgs) , vendorPkgs(vendorPkgs)
, settingsHandler(settingsHandler) , settingsHandler(settingsHandler)
{} {}
QPair<Targets, Packages> McuTargetFactoryLegacy::createTargets(const Sdk::McuTargetDescription &desc, QPair<Targets, Packages> McuTargetFactory::createTargets(const McuTargetDescription &desc,
const Utils::FilePath &qtForMcuPath) const Utils::FilePath &qtForMcuPath)
{ {
QHash<QString, McuPackagePtr> boardSdkPkgs; QHash<QString, McuPackagePtr> boardSdkPkgs;
QHash<QString, McuPackagePtr> freeRTOSPkgs; QHash<QString, McuPackagePtr> freeRTOSPkgs;
@@ -74,7 +73,7 @@ QPair<Targets, Packages> McuTargetFactoryLegacy::createTargets(const Sdk::McuTar
Utils::FilePath boardSdkDefaultPath; Utils::FilePath boardSdkDefaultPath;
if (!desc.boardSdk.envVar.isEmpty()) { if (!desc.boardSdk.envVar.isEmpty()) {
if (!boardSdkPkgs.contains(desc.boardSdk.envVar)) { if (!boardSdkPkgs.contains(desc.boardSdk.envVar)) {
McuPackagePtr boardSdkPkg{createBoardSdkPackage(settingsHandler, desc)}; McuPackagePtr boardSdkPkg{Legacy::createBoardSdkPackage(settingsHandler, desc)};
boardSdkPkgs.insert(desc.boardSdk.envVar, boardSdkPkg); boardSdkPkgs.insert(desc.boardSdk.envVar, boardSdkPkg);
} }
McuPackagePtr boardSdkPkg{boardSdkPkgs.value(desc.boardSdk.envVar)}; McuPackagePtr boardSdkPkg{boardSdkPkgs.value(desc.boardSdk.envVar)};
@@ -88,10 +87,10 @@ QPair<Targets, Packages> McuTargetFactoryLegacy::createTargets(const Sdk::McuTar
freeRTOSPkgs freeRTOSPkgs
.insert(desc.freeRTOS.envVar, .insert(desc.freeRTOS.envVar,
McuPackagePtr{ McuPackagePtr{
Sdk::createFreeRTOSSourcesPackage(settingsHandler, Legacy::createFreeRTOSSourcesPackage(settingsHandler,
desc.freeRTOS.envVar, desc.freeRTOS.envVar,
boardSdkDefaultPath, boardSdkDefaultPath,
desc.freeRTOS.boardSdkSubDir)}); desc.freeRTOS.boardSdkSubDir)});
} }
required3rdPartyPkgs.insert(freeRTOSPkgs.value(desc.freeRTOS.envVar)); required3rdPartyPkgs.insert(freeRTOSPkgs.value(desc.freeRTOS.envVar));
} }
@@ -110,29 +109,29 @@ QPair<Targets, Packages> McuTargetFactoryLegacy::createTargets(const Sdk::McuTar
return {mcuTargets, packages}; return {mcuTargets, packages};
} }
McuAbstractTargetFactory::AdditionalPackages McuTargetFactoryLegacy::getAdditionalPackages() const McuAbstractTargetFactory::AdditionalPackages McuTargetFactory::getAdditionalPackages() const
{ {
return {{}, vendorPkgs}; return {{}, vendorPkgs};
} }
McuToolChainPackagePtr McuTargetFactoryLegacy::getToolchainCompiler( McuToolChainPackagePtr McuTargetFactory::getToolchainCompiler(
const Sdk::McuTargetDescription::Toolchain &desc) const const McuTargetDescription::Toolchain &desc) const
{ {
auto compilerCreator = toolchainCreators.value(desc.id, [this](const QStringList & /*versions*/) { auto compilerCreator = toolchainCreators.value(desc.id, [this](const QStringList & /*versions*/) {
return McuToolChainPackagePtr{Sdk::createUnsupportedToolChainPackage(settingsHandler)}; return McuToolChainPackagePtr{Legacy::createUnsupportedToolChainPackage(settingsHandler)};
}); });
McuToolChainPackagePtr toolchainPackage = compilerCreator(desc.versions); McuToolChainPackagePtr toolchainPackage = compilerCreator(desc.versions);
return toolchainPackage; return toolchainPackage;
} }
McuPackagePtr McuTargetFactoryLegacy::getToolchainFile(const Utils::FilePath &qtForMCUSdkPath, McuPackagePtr McuTargetFactory::getToolchainFile(const Utils::FilePath &qtForMCUSdkPath,
const QString &toolchainName) const const QString &toolchainName) const
{ {
if (McuPackagePtr toolchainFile = toolchainFiles.value(toolchainName); toolchainFile) { if (McuPackagePtr toolchainFile = toolchainFiles.value(toolchainName); toolchainFile) {
return toolchainFile; return toolchainFile;
} else { } else {
return McuPackagePtr{ return McuPackagePtr{
Sdk::createUnsupportedToolChainFilePackage(settingsHandler, qtForMCUSdkPath)}; Legacy::createUnsupportedToolChainFilePackage(settingsHandler, qtForMCUSdkPath)};
} }
} }
} // namespace McuSupport::Internal } // namespace McuSupport::Internal::Legacy

View File

@@ -37,21 +37,23 @@ namespace McuSupport::Internal {
class McuPackage; class McuPackage;
namespace Legacy {
using ToolchainCompilerCreator = std::function<McuToolChainPackagePtr(const QStringList &version)>; using ToolchainCompilerCreator = std::function<McuToolChainPackagePtr(const QStringList &version)>;
class McuTargetFactoryLegacy : public McuAbstractTargetFactory class McuTargetFactory : public McuAbstractTargetFactory
{ {
public: public:
McuTargetFactoryLegacy(const QHash<QString, ToolchainCompilerCreator> &toolchainCreators, McuTargetFactory(const QHash<QString, ToolchainCompilerCreator> &toolchainCreators,
const QHash<QString, McuPackagePtr> &toolchainFiles, const QHash<QString, McuPackagePtr> &toolchainFiles,
const QHash<QString, McuPackagePtr> &vendorPkgs, const QHash<QString, McuPackagePtr> &vendorPkgs,
const SettingsHandler::Ptr &); const SettingsHandler::Ptr &);
QPair<Targets, Packages> createTargets(const Sdk::McuTargetDescription &, QPair<Targets, Packages> createTargets(const McuTargetDescription &,
const Utils::FilePath &qtForMCUSdkPath) override; const Utils::FilePath &qtForMCUSdkPath) override;
AdditionalPackages getAdditionalPackages() const override; AdditionalPackages getAdditionalPackages() const override;
McuToolChainPackagePtr getToolchainCompiler(const Sdk::McuTargetDescription::Toolchain &) const; McuToolChainPackagePtr getToolchainCompiler(const McuTargetDescription::Toolchain &) const;
McuPackagePtr getToolchainFile(const Utils::FilePath &qtForMCUSdkPath, McuPackagePtr getToolchainFile(const Utils::FilePath &qtForMCUSdkPath,
const QString &toolchainName) const; const QString &toolchainName) const;
@@ -61,6 +63,7 @@ private:
const QHash<QString, McuPackagePtr> vendorPkgs; const QHash<QString, McuPackagePtr> vendorPkgs;
SettingsHandler::Ptr settingsHandler; SettingsHandler::Ptr settingsHandler;
}; // struct McuTargetFactoryLegacy }; // struct McuTargetFactory
} // namespace Legacy
} // namespace McuSupport::Internal } // namespace McuSupport::Internal

View File

@@ -122,8 +122,11 @@ const QStringList jsonFiles{QString::fromUtf8(armgcc_nxp_1050_json),
const bool runLegacy{true}; const bool runLegacy{true};
const int colorDepth{32}; const int colorDepth{32};
const Sdk::McuTargetDescription::Platform const McuTargetDescription::Platform platformDescription{id,
platformDescription{id, "", "", {colorDepth}, Sdk::McuTargetDescription::TargetType::MCU}; "",
"",
{colorDepth},
McuTargetDescription::TargetType::MCU};
const Utils::Id cxxLanguageId{ProjectExplorer::Constants::CXX_LANGUAGE_ID}; const Utils::Id cxxLanguageId{ProjectExplorer::Constants::CXX_LANGUAGE_ID};
} // namespace } // namespace
@@ -149,7 +152,8 @@ void verifyIarToolchain(const McuToolChainPackagePtr &iarToolchainPackage)
ToolChainManager::instance()->registerToolChain(iarToolchain); ToolChainManager::instance()->registerToolChain(iarToolchain);
QVERIFY(iarToolchainPackage != nullptr); QVERIFY(iarToolchainPackage != nullptr);
QCOMPARE(iarToolchainPackage->cmakeVariableName(), Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE); QCOMPARE(iarToolchainPackage->cmakeVariableName(),
Legacy::Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE);
QCOMPARE(iarToolchainPackage->environmentVariableName(), iarEnvVar); QCOMPARE(iarToolchainPackage->environmentVariableName(), iarEnvVar);
QCOMPARE(iarToolchainPackage->isDesktopToolchain(), false); QCOMPARE(iarToolchainPackage->isDesktopToolchain(), false);
QCOMPARE(iarToolchainPackage->toolChainName(), iar); QCOMPARE(iarToolchainPackage->toolChainName(), iar);
@@ -172,7 +176,7 @@ void verifyArmGccToolchain(const McuToolChainPackagePtr &armGccPackage, const QS
ToolChainManager::instance()->registerToolChain(armToolchain); ToolChainManager::instance()->registerToolChain(armToolchain);
QVERIFY(armGccPackage != nullptr); QVERIFY(armGccPackage != nullptr);
QCOMPARE(armGccPackage->cmakeVariableName(), Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE); QCOMPARE(armGccPackage->cmakeVariableName(), Legacy::Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE);
QCOMPARE(armGccPackage->environmentVariableName(), armGccEnvVar); QCOMPARE(armGccPackage->environmentVariableName(), armGccEnvVar);
QCOMPARE(armGccPackage->isDesktopToolchain(), false); QCOMPARE(armGccPackage->isDesktopToolchain(), false);
QCOMPARE(armGccPackage->toolChainName(), armGcc); QCOMPARE(armGccPackage->toolChainName(), armGcc);
@@ -207,13 +211,14 @@ void verifyTargetToolchains(const Targets &targets,
const auto toolchainFile{target->toolChainFilePackage()}; const auto toolchainFile{target->toolChainFilePackage()};
QVERIFY(toolchainFile); QVERIFY(toolchainFile);
QCOMPARE(toolchainFile->cmakeVariableName(), Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE); QCOMPARE(toolchainFile->cmakeVariableName(), Legacy::Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE);
QCOMPARE(toolchainFile->settingsKey(), empty); QCOMPARE(toolchainFile->settingsKey(), empty);
QCOMPARE(toolchainFile->path().toString(), toolchainFilePath); QCOMPARE(toolchainFile->path().toString(), toolchainFilePath);
const auto toolchainCompiler{target->toolChainPackage()}; const auto toolchainCompiler{target->toolChainPackage()};
QVERIFY(toolchainCompiler); QVERIFY(toolchainCompiler);
QCOMPARE(toolchainCompiler->cmakeVariableName(), Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE); QCOMPARE(toolchainCompiler->cmakeVariableName(),
Legacy::Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE);
QCOMPARE(toolchainCompiler->path().toString(), compilerPath); QCOMPARE(toolchainCompiler->path().toString(), compilerPath);
QCOMPARE(toolchainCompiler->settingsKey(), compilerSetting); QCOMPARE(toolchainCompiler->settingsKey(), compilerSetting);
QCOMPARE(toolchainCompiler->versions(), versions); QCOMPARE(toolchainCompiler->versions(), versions);
@@ -224,7 +229,7 @@ void verifyBoardSdk(const McuPackagePtr &boardSdk,
const QStringList &versions) const QStringList &versions)
{ {
QVERIFY(boardSdk); QVERIFY(boardSdk);
QCOMPARE(boardSdk->cmakeVariableName(), Constants::BOARD_SDK_CMAKE_VAR); QCOMPARE(boardSdk->cmakeVariableName(), Legacy::Constants::BOARD_SDK_CMAKE_VAR);
QCOMPARE(boardSdk->environmentVariableName(), environmentVariable); QCOMPARE(boardSdk->environmentVariableName(), environmentVariable);
QCOMPARE(boardSdk->settingsKey(), environmentVariable); QCOMPARE(boardSdk->settingsKey(), environmentVariable);
QCOMPARE(boardSdk->detectionPath().toString(), empty); QCOMPARE(boardSdk->detectionPath().toString(), empty);
@@ -233,15 +238,15 @@ void verifyBoardSdk(const McuPackagePtr &boardSdk,
McuSupportTest::McuSupportTest() McuSupportTest::McuSupportTest()
: targetFactory{settingsMockPtr} : targetFactory{settingsMockPtr}
, compilerDescription{armGccLabel, armGccEnvVar, Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE, armGccLabel, armGccDirectorySetting, {}, {}, {}, false} , compilerDescription{armGccLabel, armGccEnvVar, Legacy::Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE, armGccLabel, armGccDirectorySetting, {}, {}, {}, false}
, toochainFileDescription{armGccLabel, armGccEnvVar, Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE, armGccLabel, armGccDirectorySetting, {}, {}, {}, false} , toochainFileDescription{armGccLabel, armGccEnvVar, Legacy::Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE, armGccLabel, armGccDirectorySetting, {}, {}, {}, false}
, targetDescription { , targetDescription {
"2.0.1", "2.0.1",
"2", "2",
platformDescription, platformDescription,
Sdk::McuTargetDescription::Toolchain{armGcc, {}, compilerDescription, toochainFileDescription}, McuTargetDescription::Toolchain{armGcc, {}, compilerDescription, toochainFileDescription},
Sdk::PackageDescription{}, PackageDescription{},
Sdk::McuTargetDescription::FreeRTOS{}, McuTargetDescription::FreeRTOS{},
} }
, toolchainPackagePtr{new McuToolChainPackage{ , toolchainPackagePtr{new McuToolChainPackage{
settingsMockPtr, settingsMockPtr,
@@ -259,7 +264,7 @@ McuSupportTest::McuSupportTest()
armGccDirectorySetting, armGccDirectorySetting,
McuToolChainPackage::ToolChainType::ArmGcc, McuToolChainPackage::ToolChainType::ArmGcc,
{armGccVersion}, {armGccVersion},
Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE, Legacy::Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE,
armGccEnvVar}} armGccEnvVar}}
, iarToolchainPackagePtr{new McuToolChainPackage{settingsMockPtr, , iarToolchainPackagePtr{new McuToolChainPackage{settingsMockPtr,
iarLabel, iarLabel,
@@ -268,7 +273,7 @@ McuSupportTest::McuSupportTest()
iarSetting, iarSetting,
McuToolChainPackage::ToolChainType::IAR, McuToolChainPackage::ToolChainType::IAR,
{armGccVersion}, {armGccVersion},
Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE, Legacy::Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE,
iarEnvVar}} iarEnvVar}}
, platform{id, name, vendor} , platform{id, name, vendor}
, mcuTarget{currentQulVersion, , mcuTarget{currentQulVersion,
@@ -303,7 +308,7 @@ void McuSupportTest::initTestCase()
EXPECT_CALL(*armGccToolchainFilePackage, environmentVariableName()) EXPECT_CALL(*armGccToolchainFilePackage, environmentVariableName())
.WillRepeatedly(Return(QString{QString{}})); .WillRepeatedly(Return(QString{QString{}}));
EXPECT_CALL(*armGccToolchainFilePackage, cmakeVariableName()) EXPECT_CALL(*armGccToolchainFilePackage, cmakeVariableName())
.WillRepeatedly(Return(QString{Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE})); .WillRepeatedly(Return(QString{Legacy::Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE}));
EXPECT_CALL(*armGccToolchainFilePackage, isValidStatus()).WillRepeatedly(Return(true)); EXPECT_CALL(*armGccToolchainFilePackage, isValidStatus()).WillRepeatedly(Return(true));
EXPECT_CALL(*armGccToolchainFilePackage, path()) EXPECT_CALL(*armGccToolchainFilePackage, path())
.WillRepeatedly(Return(FilePath::fromString(armGccToolchainFilePath))); .WillRepeatedly(Return(FilePath::fromString(armGccToolchainFilePath)));
@@ -330,7 +335,7 @@ void McuSupportTest::cleanup()
void McuSupportTest::test_parseBasicInfoFromJson() void McuSupportTest::test_parseBasicInfoFromJson()
{ {
const auto description = Sdk::parseDescriptionJson(iar_nxp_1064_json); const auto description = parseDescriptionJson(iar_nxp_1064_json);
QVERIFY(!description.freeRTOS.envVar.isEmpty()); QVERIFY(!description.freeRTOS.envVar.isEmpty());
QVERIFY(description.freeRTOS.boardSdkSubDir.isEmpty()); QVERIFY(description.freeRTOS.boardSdkSubDir.isEmpty());
@@ -338,7 +343,7 @@ void McuSupportTest::test_parseBasicInfoFromJson()
void McuSupportTest::test_parseCmakeEntries() void McuSupportTest::test_parseCmakeEntries()
{ {
const auto description{Sdk::parseDescriptionJson(iar_nxp_1064_json)}; const auto description{parseDescriptionJson(iar_nxp_1064_json)};
QVERIFY(!description.freeRTOS.packages.isEmpty()); QVERIFY(!description.freeRTOS.packages.isEmpty());
auto &freeRtos = description.freeRTOS.packages[0]; auto &freeRtos = description.freeRTOS.packages[0];
@@ -379,30 +384,30 @@ void McuSupportTest::test_parseToolchainFromJSON()
QFETCH(QString, label); QFETCH(QString, label);
QFETCH(QString, toolchainFile); QFETCH(QString, toolchainFile);
QFETCH(QString, id); QFETCH(QString, id);
Sdk::McuTargetDescription description{Sdk::parseDescriptionJson(json.toLocal8Bit())}; McuTargetDescription description{parseDescriptionJson(json.toLocal8Bit())};
QCOMPARE(description.toolchain.id, id); QCOMPARE(description.toolchain.id, id);
const Sdk::PackageDescription &compilerPackage{description.toolchain.compiler}; const PackageDescription &compilerPackage{description.toolchain.compiler};
QCOMPARE(compilerPackage.cmakeVar, Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE); QCOMPARE(compilerPackage.cmakeVar, Legacy::Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE);
QCOMPARE(compilerPackage.envVar, environmentVariable); QCOMPARE(compilerPackage.envVar, environmentVariable);
const Sdk::PackageDescription &toolchainFilePackage{description.toolchain.file}; const PackageDescription &toolchainFilePackage{description.toolchain.file};
QCOMPARE(toolchainFilePackage.label, cmakeToolchainLabel); QCOMPARE(toolchainFilePackage.label, cmakeToolchainLabel);
QCOMPARE(toolchainFilePackage.envVar, QString{}); QCOMPARE(toolchainFilePackage.envVar, QString{});
QCOMPARE(toolchainFilePackage.cmakeVar, Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE); QCOMPARE(toolchainFilePackage.cmakeVar, Legacy::Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE);
QCOMPARE(toolchainFilePackage.defaultPath.cleanPath().toString(), toolchainFile); QCOMPARE(toolchainFilePackage.defaultPath.cleanPath().toString(), toolchainFile);
} }
void McuSupportTest::test_legacy_createIarToolchain() void McuSupportTest::test_legacy_createIarToolchain()
{ {
McuToolChainPackagePtr iarToolchainPackage = Sdk::createIarToolChainPackage(settingsMockPtr, McuToolChainPackagePtr iarToolchainPackage = Legacy::createIarToolChainPackage(settingsMockPtr,
iarVersions); iarVersions);
verifyIarToolchain(iarToolchainPackage); verifyIarToolchain(iarToolchainPackage);
} }
void McuSupportTest::test_createIarToolchain() void McuSupportTest::test_createIarToolchain()
{ {
const auto description = Sdk::parseDescriptionJson(iar_stm32f469i_metal_json); const auto description = parseDescriptionJson(iar_stm32f469i_metal_json);
McuToolChainPackagePtr iarToolchainPackage{targetFactory.createToolchain(description.toolchain)}; McuToolChainPackagePtr iarToolchainPackage{targetFactory.createToolchain(description.toolchain)};
verifyIarToolchain(iarToolchainPackage); verifyIarToolchain(iarToolchainPackage);
@@ -410,14 +415,14 @@ void McuSupportTest::test_createIarToolchain()
void McuSupportTest::test_legacy_createDesktopGccToolchain() void McuSupportTest::test_legacy_createDesktopGccToolchain()
{ {
McuToolChainPackagePtr gccPackage = Sdk::createGccToolChainPackage(settingsMockPtr, McuToolChainPackagePtr gccPackage = Legacy::createGccToolChainPackage(settingsMockPtr,
{armGccNewVersion}); {armGccNewVersion});
verifyGccToolchain(gccPackage, {armGccNewVersion}); verifyGccToolchain(gccPackage, {armGccNewVersion});
} }
void McuSupportTest::test_createDesktopGccToolchain() void McuSupportTest::test_createDesktopGccToolchain()
{ {
const auto description = Sdk::parseDescriptionJson(gcc_desktop_json); const auto description = parseDescriptionJson(gcc_desktop_json);
McuToolChainPackagePtr gccPackage{targetFactory.createToolchain(description.toolchain)}; McuToolChainPackagePtr gccPackage{targetFactory.createToolchain(description.toolchain)};
verifyGccToolchain(gccPackage, {}); verifyGccToolchain(gccPackage, {});
} }
@@ -429,8 +434,8 @@ void McuSupportTest::test_verifyManuallyCreatedArmGccToolchain()
void McuSupportTest::test_legacy_createArmGccToolchain() void McuSupportTest::test_legacy_createArmGccToolchain()
{ {
McuToolChainPackagePtr armGccPackage = Sdk::createArmGccToolchainPackage(settingsMockPtr, McuToolChainPackagePtr armGccPackage = Legacy::createArmGccToolchainPackage(settingsMockPtr,
{armGccVersion}); {armGccVersion});
verifyArmGccToolchain(armGccPackage, {armGccVersion}); verifyArmGccToolchain(armGccPackage, {armGccVersion});
} }
@@ -450,27 +455,27 @@ void McuSupportTest::test_createArmGccToolchain()
{ {
QFETCH(QString, json); QFETCH(QString, json);
const auto description = Sdk::parseDescriptionJson(json.toLocal8Bit()); const auto description = parseDescriptionJson(json.toLocal8Bit());
McuToolChainPackagePtr armGccPackage{targetFactory.createToolchain(description.toolchain)}; McuToolChainPackagePtr armGccPackage{targetFactory.createToolchain(description.toolchain)};
verifyArmGccToolchain(armGccPackage, description.toolchain.versions); verifyArmGccToolchain(armGccPackage, description.toolchain.versions);
} }
void McuSupportTest::test_mapParsedToolchainIdToCorrespondingType_data() void McuSupportTest::test_mapParsedToolchainIdToCorrespondingType_data()
{ {
QTest::addColumn<Sdk::McuTargetDescription>("description"); QTest::addColumn<McuTargetDescription>("description");
QTest::addColumn<McuToolChainPackage::ToolChainType>("toolchainType"); QTest::addColumn<McuToolChainPackage::ToolChainType>("toolchainType");
QTest::newRow("armgcc_stm32h750b") << Sdk::parseDescriptionJson(armgcc_stm32h750b_metal_json) QTest::newRow("armgcc_stm32h750b") << parseDescriptionJson(armgcc_stm32h750b_metal_json)
<< McuToolChainPackage::ToolChainType::ArmGcc; << McuToolChainPackage::ToolChainType::ArmGcc;
QTest::newRow("iar_nxp1064") << Sdk::parseDescriptionJson(iar_nxp_1064_json) QTest::newRow("iar_nxp1064") << parseDescriptionJson(iar_nxp_1064_json)
<< McuToolChainPackage::ToolChainType::IAR; << McuToolChainPackage::ToolChainType::IAR;
QTest::newRow("iar_stm32f469i") << Sdk::parseDescriptionJson(iar_stm32f469i_metal_json) QTest::newRow("iar_stm32f469i") << parseDescriptionJson(iar_stm32f469i_metal_json)
<< McuToolChainPackage::ToolChainType::IAR; << McuToolChainPackage::ToolChainType::IAR;
} }
void McuSupportTest::test_mapParsedToolchainIdToCorrespondingType() void McuSupportTest::test_mapParsedToolchainIdToCorrespondingType()
{ {
QFETCH(Sdk::McuTargetDescription, description); QFETCH(McuTargetDescription, description);
QFETCH(McuToolChainPackage::ToolChainType, toolchainType); QFETCH(McuToolChainPackage::ToolChainType, toolchainType);
const McuToolChainPackage *toolchain{targetFactory.createToolchain(description.toolchain)}; const McuToolChainPackage *toolchain{targetFactory.createToolchain(description.toolchain)};
@@ -491,7 +496,8 @@ void McuSupportTest::test_legacy_createPackagesWithCorrespondingSettings_data()
QTest::newRow("nxp1064") << iar_nxp_1064_json QTest::newRow("nxp1064") << iar_nxp_1064_json
<< QSet<QString>{{"EVK_MIMXRT1064_SDK_PATH"}, << QSet<QString>{{"EVK_MIMXRT1064_SDK_PATH"},
{QString{Constants::SETTINGS_KEY_FREERTOS_PREFIX} {QString{
Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX}
.append("IMXRT1064")}, .append("IMXRT1064")},
"IARToolchain"} "IARToolchain"}
.unite(commonSettings); .unite(commonSettings);
@@ -500,7 +506,8 @@ void McuSupportTest::test_legacy_createPackagesWithCorrespondingSettings_data()
commonSettings); commonSettings);
QTest::newRow("nxp1050") << armgcc_nxp_1050_json QTest::newRow("nxp1050") << armgcc_nxp_1050_json
<< QSet<QString>{{"EVKB_IMXRT1050_SDK_PATH"}, << QSet<QString>{{"EVKB_IMXRT1050_SDK_PATH"},
{QString{Constants::SETTINGS_KEY_FREERTOS_PREFIX} {QString{
Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX}
.append("IMXRT1050")}, .append("IMXRT1050")},
"GNUArmEmbeddedToolchain"} "GNUArmEmbeddedToolchain"}
.unite(commonSettings); .unite(commonSettings);
@@ -520,9 +527,9 @@ void McuSupportTest::test_legacy_createPackagesWithCorrespondingSettings_data()
void McuSupportTest::test_legacy_createPackagesWithCorrespondingSettings() void McuSupportTest::test_legacy_createPackagesWithCorrespondingSettings()
{ {
QFETCH(QString, json); QFETCH(QString, json);
const Sdk::McuTargetDescription description = Sdk::parseDescriptionJson(json.toLocal8Bit()); const McuTargetDescription description = parseDescriptionJson(json.toLocal8Bit());
const auto [targets, packages]{ const auto [targets, packages]{
Sdk::targetsFromDescriptions({description}, settingsMockPtr, qtForMcuSdkPath, runLegacy)}; targetsFromDescriptions({description}, settingsMockPtr, qtForMcuSdkPath, runLegacy)};
Q_UNUSED(targets); Q_UNUSED(targets);
QSet<QString> settings = transform<QSet<QString>>(packages, [](const auto &package) { QSet<QString> settings = transform<QSet<QString>>(packages, [](const auto &package) {
@@ -538,13 +545,17 @@ void McuSupportTest::test_createFreeRtosPackageWithCorrectSetting_data()
QTest::addColumn<QString>("expectedSettingsKey"); QTest::addColumn<QString>("expectedSettingsKey");
QTest::newRow("nxp1050") << nxp1050FreeRtosEnvVar QTest::newRow("nxp1050") << nxp1050FreeRtosEnvVar
<< QString{Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(nxp1050); << QString{Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(
nxp1050);
QTest::newRow("nxp1064") << nxp1064FreeRtosEnvVar QTest::newRow("nxp1064") << nxp1064FreeRtosEnvVar
<< QString{Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(nxp1064); << QString{Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(
nxp1064);
QTest::newRow("nxp1170") << nxp1170FreeRtosEnvVar QTest::newRow("nxp1170") << nxp1170FreeRtosEnvVar
<< QString{Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(nxp1170); << QString{Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(
nxp1170);
QTest::newRow("stm32f7") << stm32f7FreeRtosEnvVar QTest::newRow("stm32f7") << stm32f7FreeRtosEnvVar
<< QString{Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(stm32f7); << QString{Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(
stm32f7);
} }
void McuSupportTest::test_createFreeRtosPackageWithCorrectSetting() void McuSupportTest::test_createFreeRtosPackageWithCorrectSetting()
@@ -552,8 +563,10 @@ void McuSupportTest::test_createFreeRtosPackageWithCorrectSetting()
QFETCH(QString, freeRtosEnvVar); QFETCH(QString, freeRtosEnvVar);
QFETCH(QString, expectedSettingsKey); QFETCH(QString, expectedSettingsKey);
McuPackagePtr package{ McuPackagePtr package{Legacy::createFreeRTOSSourcesPackage(settingsMockPtr,
Sdk::createFreeRTOSSourcesPackage(settingsMockPtr, freeRtosEnvVar, FilePath{}, FilePath{})}; freeRtosEnvVar,
FilePath{},
FilePath{})};
QVERIFY(package != nullptr); QVERIFY(package != nullptr);
QCOMPARE(package->settingsKey(), expectedSettingsKey); QCOMPARE(package->settingsKey(), expectedSettingsKey);
@@ -561,15 +574,15 @@ void McuSupportTest::test_createFreeRtosPackageWithCorrectSetting()
void McuSupportTest::test_createTargets() void McuSupportTest::test_createTargets()
{ {
Sdk::PackageDescription packageDescription{id, PackageDescription packageDescription{id,
nxp1064FreeRtosEnvVar, nxp1064FreeRtosEnvVar,
freeRtosCMakeVar, freeRtosCMakeVar,
freeRtosSetting, freeRtosSetting,
freeRtosDescription, freeRtosDescription,
freeRtosPath, freeRtosPath,
"", "",
{}, {},
true}; true};
targetDescription.freeRTOS.packages.append(packageDescription); targetDescription.freeRTOS.packages.append(packageDescription);
targetDescription.toolchain.id = armGcc; targetDescription.toolchain.id = armGcc;
@@ -590,38 +603,38 @@ void McuSupportTest::test_createTargets()
// all packages should contain target's tooclhain compiler package. // all packages should contain target's tooclhain compiler package.
QVERIFY(anyOf(packages, [](const McuPackagePtr &pkg) { QVERIFY(anyOf(packages, [](const McuPackagePtr &pkg) {
return (pkg->cmakeVariableName() == Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE); return (pkg->cmakeVariableName() == Legacy::Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE);
})); }));
// target should contain tooclhain copmiler package. // target should contain tooclhain copmiler package.
QVERIFY(anyOf(tgtPackages, [](const McuPackagePtr &pkg) { QVERIFY(anyOf(tgtPackages, [](const McuPackagePtr &pkg) {
return (pkg->cmakeVariableName() return (pkg->cmakeVariableName()
== Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE /*and pkg->disconnect*/); == Legacy::Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE /*and pkg->disconnect*/);
})); }));
// all packages should contain target's tooclhain file package. // all packages should contain target's tooclhain file package.
QVERIFY(anyOf(packages, [](const McuPackagePtr &pkg) { QVERIFY(anyOf(packages, [](const McuPackagePtr &pkg) {
return (pkg->cmakeVariableName() == Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE); return (pkg->cmakeVariableName() == Legacy::Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE);
})); }));
// target should contain tooclhain file package. // target should contain tooclhain file package.
QVERIFY(anyOf(tgtPackages, [](const McuPackagePtr &pkg) { QVERIFY(anyOf(tgtPackages, [](const McuPackagePtr &pkg) {
return (pkg->cmakeVariableName() return (pkg->cmakeVariableName()
== Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE /*and pkg->disconnect*/); == Legacy::Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE /*and pkg->disconnect*/);
})); }));
} }
void McuSupportTest::test_createPackages() void McuSupportTest::test_createPackages()
{ {
Sdk::PackageDescription packageDescription{id, PackageDescription packageDescription{id,
nxp1064FreeRtosEnvVar, nxp1064FreeRtosEnvVar,
freeRtosCMakeVar, freeRtosCMakeVar,
freeRtosLabel, freeRtosLabel,
freeRtosSetting, freeRtosSetting,
freeRtosPath, freeRtosPath,
"", "",
{}, {},
true}; true};
targetDescription.freeRTOS.packages.append(packageDescription); targetDescription.freeRTOS.packages.append(packageDescription);
const auto packages{targetFactory.createPackages(targetDescription)}; const auto packages{targetFactory.createPackages(targetDescription)};
@@ -658,16 +671,16 @@ void McuSupportTest::test_twoDotOneUsesLegacyImplementation()
} }
void McuSupportTest::test_useFallbackPathForToolchainWhenPathFromSettingsIsNotAvailable() void McuSupportTest::test_useFallbackPathForToolchainWhenPathFromSettingsIsNotAvailable()
{ {
Sdk::PackageDescription compilerDescription{armGcc, PackageDescription compilerDescription{armGcc,
armGccEnvVar, armGccEnvVar,
Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE, Legacy::Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE,
armGcc, armGcc,
armGccDirectorySetting, armGccDirectorySetting,
fallbackDir, fallbackDir,
{}, {},
{}, {},
false}; false};
Sdk::McuTargetDescription::Toolchain toolchainDescription{armGcc, {}, compilerDescription, {}}; McuTargetDescription::Toolchain toolchainDescription{armGcc, {}, compilerDescription, {}};
EXPECT_CALL(*settingsMockPtr, getPath(QString{armGccDirectorySetting}, _, FilePath{fallbackDir})) EXPECT_CALL(*settingsMockPtr, getPath(QString{armGccDirectorySetting}, _, FilePath{fallbackDir}))
.Times(2) .Times(2)
@@ -680,16 +693,16 @@ void McuSupportTest::test_useFallbackPathForToolchainWhenPathFromSettingsIsNotAv
void McuSupportTest::test_usePathFromSettingsForToolchainPath() void McuSupportTest::test_usePathFromSettingsForToolchainPath()
{ {
Sdk::PackageDescription compilerDescription{{}, PackageDescription compilerDescription{{},
armGccEnvVar, armGccEnvVar,
Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE, Legacy::Constants::TOOLCHAIN_DIR_CMAKE_VARIABLE,
armGcc, armGcc,
armGccDirectorySetting, armGccDirectorySetting,
empty, empty,
{}, {},
{}, {},
false}; false};
Sdk::McuTargetDescription::Toolchain toolchainDescription{armGcc, {}, compilerDescription, {}}; McuTargetDescription::Toolchain toolchainDescription{armGcc, {}, compilerDescription, {}};
EXPECT_CALL(*settingsMockPtr, getPath(QString{armGccDirectorySetting}, _, FilePath{empty})) EXPECT_CALL(*settingsMockPtr, getPath(QString{armGccDirectorySetting}, _, FilePath{empty}))
.Times(2) .Times(2)
@@ -719,7 +732,7 @@ void McuSupportTest::test_addNewKit()
QCOMPARE(createdKit, newKit); QCOMPARE(createdKit, newKit);
const auto config = CMakeConfigurationKitAspect::configuration(newKit); const auto config = CMakeConfigurationKitAspect::configuration(newKit);
QVERIFY(config.size() > 0); QVERIFY(!config.empty());
QVERIFY( QVERIFY(
indexOf(config.toVector(), indexOf(config.toVector(),
[&cmakeVar](const CMakeConfigItem &item) { return item.key == cmakeVar.toUtf8(); }) [&cmakeVar](const CMakeConfigItem &item) { return item.key == cmakeVar.toUtf8(); })
@@ -734,12 +747,12 @@ void McuSupportTest::test_getFullToolchainFilePathFromTarget()
void McuSupportTest::test_legacy_getPredefinedToolchainFilePackage() void McuSupportTest::test_legacy_getPredefinedToolchainFilePackage()
{ {
QHash<QString, ToolchainCompilerCreator> toolchainCreators{ QHash<QString, Legacy::ToolchainCompilerCreator> toolchainCreators{
{armGcc, [this](const QStringList & /*versions*/) { return armGccToolchainPackagePtr; }}}; {armGcc, [this](const QStringList & /*versions*/) { return armGccToolchainPackagePtr; }}};
McuTargetFactoryLegacy legacyTargetFactory{toolchainCreators, Legacy::McuTargetFactory legacyTargetFactory{toolchainCreators,
{{armGcc, armGccToolchainFilePackagePtr}}, {{armGcc, armGccToolchainFilePackagePtr}},
{}, {},
settingsMockPtr}; settingsMockPtr};
auto armToolchainFile = legacyTargetFactory.getToolchainFile(qtForMcuSdkPath, armGcc); auto armToolchainFile = legacyTargetFactory.getToolchainFile(qtForMcuSdkPath, armGcc);
QVERIFY(armToolchainFile); QVERIFY(armToolchainFile);
QCOMPARE(armToolchainFile, armGccToolchainFilePackagePtr); QCOMPARE(armToolchainFile, armGccToolchainFilePackagePtr);
@@ -747,18 +760,18 @@ void McuSupportTest::test_legacy_getPredefinedToolchainFilePackage()
void McuSupportTest::test_legacy_createUnsupportedToolchainFilePackage() void McuSupportTest::test_legacy_createUnsupportedToolchainFilePackage()
{ {
QHash<QString, ToolchainCompilerCreator> toolchainCreators{ QHash<QString, Legacy::ToolchainCompilerCreator> toolchainCreators{
{armGcc, [this](const QStringList & /*versions*/) { return armGccToolchainPackagePtr; }}}; {armGcc, [this](const QStringList & /*versions*/) { return armGccToolchainPackagePtr; }}};
McuTargetFactoryLegacy legacyTargetFactory{toolchainCreators, Legacy::McuTargetFactory legacyTargetFactory{toolchainCreators,
{{armGcc, armGccToolchainFilePackagePtr}}, {{armGcc, armGccToolchainFilePackagePtr}},
{}, {},
settingsMockPtr}; settingsMockPtr};
auto unsupportedToolchainFile = legacyTargetFactory.getToolchainFile(qtForMcuSdkPath, iar); auto unsupportedToolchainFile = legacyTargetFactory.getToolchainFile(qtForMcuSdkPath, iar);
QVERIFY(unsupportedToolchainFile); QVERIFY(unsupportedToolchainFile);
QCOMPARE(unsupportedToolchainFile->path().toString(), unsupportedToolchainFilePath); QCOMPARE(unsupportedToolchainFile->path().toString(), unsupportedToolchainFilePath);
QCOMPARE(unsupportedToolchainFile->cmakeVariableName(), QCOMPARE(unsupportedToolchainFile->cmakeVariableName(),
Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE); Legacy::Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE);
} }
void McuSupportTest::test_legacy_createTargetWithToolchainPackages_data() void McuSupportTest::test_legacy_createTargetWithToolchainPackages_data()
@@ -797,7 +810,7 @@ void McuSupportTest::test_legacy_createTargetWithToolchainPackages()
QFETCH(QString, compilerSetting); QFETCH(QString, compilerSetting);
QFETCH(QStringList, versions); QFETCH(QStringList, versions);
const Sdk::McuTargetDescription description = Sdk::parseDescriptionJson(json.toLocal8Bit()); const McuTargetDescription description = parseDescriptionJson(json.toLocal8Bit());
EXPECT_CALL(*settingsMockPtr, EXPECT_CALL(*settingsMockPtr,
getPath(QString{Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK}, _, _)) getPath(QString{Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK}, _, _))
@@ -806,7 +819,7 @@ void McuSupportTest::test_legacy_createTargetWithToolchainPackages()
.WillRepeatedly(Return(FilePath::fromString(compilerPath))); .WillRepeatedly(Return(FilePath::fromString(compilerPath)));
const auto [targets, packages]{ const auto [targets, packages]{
Sdk::targetsFromDescriptions({description}, settingsMockPtr, qtForMcuSdkPath, runLegacy)}; targetsFromDescriptions({description}, settingsMockPtr, qtForMcuSdkPath, runLegacy)};
Q_UNUSED(packages); Q_UNUSED(packages);
verifyTargetToolchains(targets, toolchainFilePath, compilerPath, compilerSetting, versions); verifyTargetToolchains(targets, toolchainFilePath, compilerPath, compilerSetting, versions);
@@ -831,9 +844,9 @@ void McuSupportTest::test_createTargetWithToolchainPackages()
EXPECT_CALL(*settingsMockPtr, getPath(compilerSetting, _, _)) EXPECT_CALL(*settingsMockPtr, getPath(compilerSetting, _, _))
.WillRepeatedly(Return(FilePath::fromString(compilerPath))); .WillRepeatedly(Return(FilePath::fromString(compilerPath)));
const Sdk::McuTargetDescription description = Sdk::parseDescriptionJson(json.toLocal8Bit()); const McuTargetDescription description = parseDescriptionJson(json.toLocal8Bit());
const auto [targets, packages]{ const auto [targets, packages]{
Sdk::targetsFromDescriptions({description}, settingsMockPtr, qtForMcuSdkPath, !runLegacy)}; targetsFromDescriptions({description}, settingsMockPtr, qtForMcuSdkPath, !runLegacy)};
Q_UNUSED(packages); Q_UNUSED(packages);
verifyTargetToolchains(targets, toolchainFilePath, compilerPath, compilerSetting, versions); verifyTargetToolchains(targets, toolchainFilePath, compilerPath, compilerSetting, versions);
@@ -848,7 +861,8 @@ void McuSupportTest::test_addToolchainFileInfoToKit()
const auto &cmakeConfig{CMakeConfigurationKitAspect::configuration(&kit)}; const auto &cmakeConfig{CMakeConfigurationKitAspect::configuration(&kit)};
QVERIFY(!cmakeConfig.empty()); QVERIFY(!cmakeConfig.empty());
QCOMPARE(cmakeConfig.valueOf(Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE), armGccToolchainFilePath); QCOMPARE(cmakeConfig.valueOf(Legacy::Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE),
armGccToolchainFilePath);
} }
void McuSupportTest::test_legacy_createBoardSdk_data() void McuSupportTest::test_legacy_createBoardSdk_data()
@@ -876,8 +890,8 @@ void McuSupportTest::test_legacy_createBoardSdk()
QFETCH(QString, environmentVariable); QFETCH(QString, environmentVariable);
QFETCH(QStringList, versions); QFETCH(QStringList, versions);
Sdk::McuTargetDescription target{Sdk::parseDescriptionJson(json.toLocal8Bit())}; McuTargetDescription target{parseDescriptionJson(json.toLocal8Bit())};
McuPackagePtr boardSdk{Sdk::createBoardSdkPackage(settingsMockPtr, target)}; McuPackagePtr boardSdk{Legacy::createBoardSdkPackage(settingsMockPtr, target)};
verifyBoardSdk(boardSdk, environmentVariable, versions); verifyBoardSdk(boardSdk, environmentVariable, versions);
} }
@@ -893,7 +907,7 @@ void McuSupportTest::test_createBoardSdk()
QFETCH(QString, environmentVariable); QFETCH(QString, environmentVariable);
QFETCH(QStringList, versions); QFETCH(QStringList, versions);
Sdk::McuTargetDescription target{Sdk::parseDescriptionJson(json.toLocal8Bit())}; McuTargetDescription target{parseDescriptionJson(json.toLocal8Bit())};
McuPackagePtr boardSdk{targetFactory.createPackage(target.boardSdk)}; McuPackagePtr boardSdk{targetFactory.createPackage(target.boardSdk)};
@@ -906,11 +920,12 @@ void McuSupportTest::test_legacy_createQtMCUsPackage()
getPath(QString{Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK}, _, _)) getPath(QString{Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK}, _, _))
.WillRepeatedly(Return(FilePath::fromString(qtForMcuSdkPath))); .WillRepeatedly(Return(FilePath::fromString(qtForMcuSdkPath)));
McuPackagePtr qtForMCUsSDK = Sdk::createQtForMCUsPackage(settingsMockPtr); McuPackagePtr qtForMCUsSDK = createQtForMCUsPackage(settingsMockPtr);
QVERIFY(qtForMCUsSDK); QVERIFY(qtForMCUsSDK);
QCOMPARE(qtForMCUsSDK->settingsKey(), Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK); QCOMPARE(qtForMCUsSDK->settingsKey(), Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK);
QCOMPARE(qtForMCUsSDK->detectionPath(), Constants::QT_FOR_MCUS_SDK_PACKAGE_VALIDATION_PATH); QCOMPARE(qtForMCUsSDK->detectionPath(),
Legacy::Constants::QT_FOR_MCUS_SDK_PACKAGE_VALIDATION_PATH);
QCOMPARE(qtForMCUsSDK->path().toString(), qtForMcuSdkPath); QCOMPARE(qtForMCUsSDK->path().toString(), qtForMcuSdkPath);
} }

View File

@@ -102,9 +102,9 @@ private:
QSharedPointer<SettingsHandlerMock> settingsMockPtr{new SettingsHandlerMock}; QSharedPointer<SettingsHandlerMock> settingsMockPtr{new SettingsHandlerMock};
McuTargetFactory targetFactory; McuTargetFactory targetFactory;
Sdk::PackageDescription compilerDescription; PackageDescription compilerDescription;
Sdk::PackageDescription toochainFileDescription; PackageDescription toochainFileDescription;
Sdk::McuTargetDescription targetDescription; McuTargetDescription targetDescription;
McuToolChainPackagePtr toolchainPackagePtr; McuToolChainPackagePtr toolchainPackagePtr;
McuToolChainPackagePtr armGccToolchainPackagePtr; McuToolChainPackagePtr armGccToolchainPackagePtr;
McuToolChainPackagePtr iarToolchainPackagePtr; McuToolChainPackagePtr iarToolchainPackagePtr;