McuSupport: Sync JSON files with QtMCUs repo and related fixes

This synchronizes JSON files used by unit tests with files
in QtMCUs repo. To do that some changes in code were needed.

QtMCUs package is no longer created for each JSON file. Because of
its nature it's created once and passed to each target.

Unit tests now have verifyPackage function to avoid duplication
of checks.

In test creating target QtMCUs package is checked beside toolchain
ones.

Change-Id: I5dea470daf184b45facfaaa793c359310ac22fc1
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Yasser Grimes <yasser.grimes@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Piotr Mućko
2022-09-15 17:25:49 +02:00
parent 5dcfbe6c52
commit df92e79da4
50 changed files with 2732 additions and 898 deletions

View File

@@ -25,7 +25,7 @@ public:
virtual ~McuAbstractTargetFactory() = default; virtual ~McuAbstractTargetFactory() = default;
virtual QPair<Targets, Packages> createTargets(const McuTargetDescription &, virtual QPair<Targets, Packages> createTargets(const McuTargetDescription &,
const Utils::FilePath &qtForMcuPath) const McuPackagePtr &qtForMCUsPackage)
= 0; = 0;
using AdditionalPackages using AdditionalPackages
= QPair<QHash<QString, McuToolChainPackagePtr>, QHash<QString, McuPackagePtr>>; = QPair<QHash<QString, McuToolChainPackagePtr>, QHash<QString, McuPackagePtr>>;

View File

@@ -490,8 +490,7 @@ void createAutomaticKits(const SettingsHandler::Ptr &settingsHandler)
return; return;
} }
FilePath dir = qtForMCUsPackage->path(); McuSdkRepository repo{targetsAndPackages(qtForMCUsPackage, 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)) {
@@ -529,8 +528,7 @@ void upgradeKitsByCreatingNewPackage(const SettingsHandler::Ptr &settingsHandler
McuPackagePtr qtForMCUsPackage{createQtForMCUsPackage(settingsHandler)}; McuPackagePtr qtForMCUsPackage{createQtForMCUsPackage(settingsHandler)};
auto dir = qtForMCUsPackage->path(); McuSdkRepository repo{targetsAndPackages(qtForMCUsPackage, 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())
@@ -571,8 +569,7 @@ void updatePathsInExistingKits(const SettingsHandler::Ptr &settingsHandler)
{ {
McuPackagePtr qtForMCUsPackage{createQtForMCUsPackage(settingsHandler)}; McuPackagePtr qtForMCUsPackage{createQtForMCUsPackage(settingsHandler)};
FilePath dir = qtForMCUsPackage->path(); McuSdkRepository repo{targetsAndPackages(qtForMCUsPackage, 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,8 +654,7 @@ void fixExistingKits(const SettingsHandler::Ptr &settingsHandler)
McuPackagePtr qtForMCUsPackage{createQtForMCUsPackage(settingsHandler)}; McuPackagePtr qtForMCUsPackage{createQtForMCUsPackage(settingsHandler)};
qtForMCUsPackage->updateStatus(); qtForMCUsPackage->updateStatus();
if (qtForMCUsPackage->isValidStatus()) { if (qtForMCUsPackage->isValidStatus()) {
FilePath dir = qtForMCUsPackage->path(); McuSdkRepository repo{targetsAndPackages(qtForMCUsPackage, 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

@@ -118,7 +118,6 @@ FilePath McuPackage::detectionPath() const
void McuPackage::setPath(const FilePath &newPath) void McuPackage::setPath(const FilePath &newPath)
{ {
m_path = newPath; m_path = newPath;
m_defaultPath = newPath;
updateStatus(); updateStatus();
} }

View File

@@ -96,11 +96,11 @@ bool McuSupportOptions::isLegacyVersion(const QVersionNumber &version)
return version < newVersion; return version < newVersion;
} }
void McuSupportOptions::setQulDir(const FilePath &dir) void McuSupportOptions::setQulDir(const FilePath &)
{ {
qtForMCUsSdkPackage->updateStatus(); qtForMCUsSdkPackage->updateStatus();
if (qtForMCUsSdkPackage->isValidStatus()) if (qtForMCUsSdkPackage->isValidStatus())
sdkRepository = targetsAndPackages(dir, settingsHandler); sdkRepository = targetsAndPackages(qtForMCUsSdkPackage, settingsHandler);
else else
sdkRepository = McuSdkRepository{}; sdkRepository = McuSdkRepository{};
for (const auto &package : qAsConst(sdkRepository.packages)) for (const auto &package : qAsConst(sdkRepository.packages))

View File

@@ -48,7 +48,7 @@ McuPackagePtr createQtForMCUsPackage(const SettingsHandler::Ptr &settingsHandler
{ {
return McuPackagePtr{ return McuPackagePtr{
new McuPackage(settingsHandler, new McuPackage(settingsHandler,
McuPackage::tr("Qt for MCUs SDK"), {},
FileUtils::homePath(), // defaultPath FileUtils::homePath(), // defaultPath
FilePath(Legacy::Constants::QT_FOR_MCUS_SDK_PACKAGE_VALIDATION_PATH) FilePath(Legacy::Constants::QT_FOR_MCUS_SDK_PACKAGE_VALIDATION_PATH)
.withExecutableSuffix(), // detectionPath .withExecutableSuffix(), // detectionPath
@@ -573,19 +573,20 @@ static McuAbstractTargetFactory::Ptr createFactory(bool isLegacy,
McuSdkRepository targetsFromDescriptions(const QList<McuTargetDescription> &descriptions, McuSdkRepository targetsFromDescriptions(const QList<McuTargetDescription> &descriptions,
const SettingsHandler::Ptr &settingsHandler, const SettingsHandler::Ptr &settingsHandler,
const FilePath &qtForMCUSdkPath, const McuPackagePtr &qtForMCUsPackage,
bool isLegacy) bool isLegacy)
{ {
Targets mcuTargets; Targets mcuTargets;
Packages mcuPackages; Packages mcuPackages;
const FilePath &qtForMCUSdkPath{qtForMCUsPackage->path()};
McuAbstractTargetFactory::Ptr targetFactory = createFactory(isLegacy, McuAbstractTargetFactory::Ptr targetFactory = createFactory(isLegacy,
settingsHandler, settingsHandler,
qtForMCUSdkPath); qtForMCUSdkPath);
for (const McuTargetDescription &desc : descriptions) { for (const McuTargetDescription &desc : descriptions) {
auto [targets, packages] = targetFactory->createTargets(desc, qtForMCUSdkPath); auto [targets, packages] = targetFactory->createTargets(desc, qtForMCUsPackage);
mcuTargets.append(targets); mcuTargets.append(targets);
mcuPackages.unite(packages); mcuPackages.unite(packages);
mcuPackages.insert(qtForMCUsPackage);
} }
if (isLegacy) { if (isLegacy) {
@@ -741,9 +742,10 @@ bool checkDeprecatedSdkError(const FilePath &qulDir, QString &message)
return false; return false;
} }
McuSdkRepository targetsAndPackages(const FilePath &qtForMCUSdkPath, McuSdkRepository targetsAndPackages(const McuPackagePtr &qtForMCUsPackage,
const SettingsHandler::Ptr &settingsHandler) const SettingsHandler::Ptr &settingsHandler)
{ {
const FilePath &qtForMCUSdkPath{qtForMCUsPackage->path()};
QList<McuTargetDescription> descriptions; QList<McuTargetDescription> descriptions;
bool isLegacy{false}; bool isLegacy{false};
@@ -800,7 +802,7 @@ McuSdkRepository targetsAndPackages(const FilePath &qtForMCUSdkPath,
} }
McuSdkRepository repo = targetsFromDescriptions(descriptions, McuSdkRepository repo = targetsFromDescriptions(descriptions,
settingsHandler, settingsHandler,
qtForMCUSdkPath, qtForMCUsPackage,
isLegacy); isLegacy);
// Keep targets sorted lexicographically // Keep targets sorted lexicographically

View File

@@ -25,12 +25,13 @@ McuPackagePtr createQtForMCUsPackage(const SettingsHandler::Ptr &);
bool checkDeprecatedSdkError(const Utils::FilePath &qulDir, QString &message); bool checkDeprecatedSdkError(const Utils::FilePath &qulDir, QString &message);
McuSdkRepository targetsAndPackages(const Utils::FilePath &qulDir, const SettingsHandler::Ptr &); McuSdkRepository targetsAndPackages(const McuPackagePtr &qtForMCUsPackage,
const SettingsHandler::Ptr &);
McuTargetDescription parseDescriptionJson(const QByteArray &); McuTargetDescription parseDescriptionJson(const QByteArray &);
McuSdkRepository targetsFromDescriptions(const QList<McuTargetDescription> &, McuSdkRepository targetsFromDescriptions(const QList<McuTargetDescription> &,
const SettingsHandler::Ptr &, const SettingsHandler::Ptr &,
const Utils::FilePath &qtForMCUSdkPath, const McuPackagePtr &qtForMCUsPackage,
bool isLegacy); bool isLegacy);
Utils::FilePath kitsPath(const Utils::FilePath &dir); Utils::FilePath kitsPath(const Utils::FilePath &dir);

View File

@@ -46,6 +46,14 @@ McuPackageVersionDetector *createVersionDetection(const VersionDetection &versio
versionDetection.isFile); versionDetection.isFile);
} }
static void removeEmptyPackages(Packages &packages)
{
for (const McuPackagePtr &pkg : packages) {
if (pkg->cmakeVariableName().isEmpty() && pkg->path().isEmpty())
packages.remove(pkg);
}
}
static void expandVariables(Packages &packages) static void expandVariables(Packages &packages)
{ {
Utils::MacroExpander macroExpander; Utils::MacroExpander macroExpander;
@@ -63,7 +71,7 @@ McuTargetFactory::McuTargetFactory(const SettingsHandler::Ptr &settingsHandler)
{} {}
QPair<Targets, Packages> McuTargetFactory::createTargets(const McuTargetDescription &desc, QPair<Targets, Packages> McuTargetFactory::createTargets(const McuTargetDescription &desc,
const Utils::FilePath & /*qtForMCUSdkPath*/) const McuPackagePtr &qtForMCUsPackage)
{ {
Targets mcuTargets; Targets mcuTargets;
Packages packages; Packages packages;
@@ -80,8 +88,10 @@ QPair<Targets, Packages> McuTargetFactory::createTargets(const McuTargetDescript
Packages targetPackages = createPackages(desc); Packages targetPackages = createPackages(desc);
McuToolChainPackagePtr toolchainPtr{toolchain}; McuToolChainPackagePtr toolchainPtr{toolchain};
targetPackages.insert({toolchainPtr}); targetPackages.insert({toolchainPtr});
targetPackages.insert({qtForMCUsPackage});
targetPackages.unite({toolchainFile}); targetPackages.unite({toolchainFile});
removeEmptyPackages(targetPackages);
expandVariables(targetPackages); expandVariables(targetPackages);
packages.unite(targetPackages); packages.unite(targetPackages);
@@ -143,8 +153,8 @@ McuToolChainPackage *McuTargetFactory::createToolchain(
{"msvc", McuToolChainPackage::ToolChainType::MSVC}, {"msvc", McuToolChainPackage::ToolChainType::MSVC},
{"gcc", McuToolChainPackage::ToolChainType::GCC}, {"gcc", McuToolChainPackage::ToolChainType::GCC},
{"armgcc", McuToolChainPackage::ToolChainType::ArmGcc}, {"armgcc", McuToolChainPackage::ToolChainType::ArmGcc},
{"ghs", McuToolChainPackage::ToolChainType::GHS}, {"greenhills", McuToolChainPackage::ToolChainType::GHS},
{"ghsarm", McuToolChainPackage::ToolChainType::GHSArm}, {"arm-greenhills", McuToolChainPackage::ToolChainType::GHSArm},
}; };
const PackageDescription compilerDescription{toolchain.compiler}; const PackageDescription compilerDescription{toolchain.compiler};

View File

@@ -18,7 +18,7 @@ class McuTargetFactory : public McuAbstractTargetFactory
public: public:
explicit McuTargetFactory(const SettingsHandler::Ptr &); explicit McuTargetFactory(const SettingsHandler::Ptr &);
QPair<Targets, Packages> createTargets(const McuTargetDescription &, QPair<Targets, Packages> createTargets(const McuTargetDescription &,
const Utils::FilePath &qtForMCUSdkPath) override; const McuPackagePtr &qtForMCUsPackage) override;
Packages createPackages(const McuTargetDescription &); Packages createPackages(const McuTargetDescription &);
McuToolChainPackage *createToolchain(const McuTargetDescription::Toolchain &); McuToolChainPackage *createToolchain(const McuTargetDescription::Toolchain &);
McuPackagePtr createPackage(const PackageDescription &); McuPackagePtr createPackage(const PackageDescription &);

View File

@@ -24,8 +24,9 @@ McuTargetFactory::McuTargetFactory(const QHash<QString, ToolchainCompilerCreator
{} {}
QPair<Targets, Packages> McuTargetFactory::createTargets(const McuTargetDescription &desc, QPair<Targets, Packages> McuTargetFactory::createTargets(const McuTargetDescription &desc,
const Utils::FilePath &qtForMcuPath) const McuPackagePtr &qtForMCUsPackage)
{ {
const Utils::FilePath &qtForMcuPath{qtForMCUsPackage->path()};
QHash<QString, McuPackagePtr> boardSdkPkgs; QHash<QString, McuPackagePtr> boardSdkPkgs;
QHash<QString, McuPackagePtr> freeRTOSPkgs; QHash<QString, McuPackagePtr> freeRTOSPkgs;
Targets mcuTargets; Targets mcuTargets;

View File

@@ -28,7 +28,7 @@ public:
const SettingsHandler::Ptr &); const SettingsHandler::Ptr &);
QPair<Targets, Packages> createTargets(const McuTargetDescription &, QPair<Targets, Packages> createTargets(const McuTargetDescription &,
const Utils::FilePath &qtForMCUSdkPath) override; const McuPackagePtr &qtForMCUsPackage) override;
AdditionalPackages getAdditionalPackages() const override; AdditionalPackages getAdditionalPackages() const override;
McuToolChainPackagePtr getToolchainCompiler(const McuTargetDescription::Toolchain &) const; McuToolChainPackagePtr getToolchainCompiler(const McuTargetDescription::Toolchain &) const;

View File

@@ -0,0 +1,80 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto armgcc_ek_ra6m3g_baremetal_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "EK-RA6M3G-BAREMETAL",
"vendor": "RENESAS",
"colorDepths": [
16
],
"cmakeEntries": [
{
"cmakeVar": "JLINK_PATH",
"setting": "JLinkPath",
"envVar": "JLINK_PATH",
"label": "Path to SEGGER J-Link",
"type": "path",
"defaultValue": {
"windows": "%{Env:PROGRAMSANDFILES}/SEGGER/JLink",
"unix": "/opt/SEGGER/JLink"
},
"optional": true
},
{
"cmakeVar": "EK_RA6M3G_E2_PROJECT_PATH",
"defaultValue": "%{Env:HOME}/e2_studio/workspace/",
"id": "EK_RA6M3G_E2_PROJECT_PATH",
"label": "Path to project for Renesas e2 Studio",
"optional": true,
"setting": "RenesasE2ProjectPath",
"type": "path"
}
]
},
"toolchain": {
"id": "armgcc",
"versions": [
"10.3.1"
],
"compiler": {
"id": "ARMGCC_DIR",
"label": "GNU Arm Embedded Toolchain",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"envVar": "ARMGCC_DIR",
"setting": "GNUArmEmbeddedToolchain",
"type": "path",
"optional": false,
"versionDetection": {
"filePattern": "bin/arm-none-eabi-g++",
"executableArgs": "--version",
"regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b"
}
},
"file": {
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"cmakeVar": "QUL_BOARD_SDK_DIR",
"envVar": "EK_RA6M3G_FSP_PATH",
"id": "EK_RA6M3G_FSP_PATH",
"label": "Flexible Software Package for Renesas RA MCU Family",
"optional": false,
"type": "path",
"versions": [
"3.8.0"
]
}
}
)";

View File

@@ -0,0 +1,81 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto armgcc_ek_ra6m3g_freertos_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "EK-RA6M3G-FREERTOS",
"vendor": "RENESAS",
"colorDepths": [
16
],
"cmakeEntries": [
{
"cmakeVar": "JLINK_PATH",
"setting": "JLinkPath",
"envVar": "JLINK_PATH",
"label": "Path to SEGGER J-Link",
"type": "path",
"defaultValue": {
"windows": "%{Env:PROGRAMSANDFILES}/SEGGER/JLink",
"unix": "/opt/SEGGER/JLink"
},
"optional": true
}
]
},
"toolchain": {
"id": "armgcc",
"versions": [
"10.3.1"
],
"compiler": {
"id": "ARMGCC_DIR",
"label": "GNU Arm Embedded Toolchain",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"envVar": "ARMGCC_DIR",
"setting": "GNUArmEmbeddedToolchain",
"type": "path",
"optional": false,
"versionDetection": {
"filePattern": "bin/arm-none-eabi-g++",
"executableArgs": "--version",
"regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b"
}
},
"file": {
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"cmakeVar": "QUL_BOARD_SDK_DIR",
"envVar": "EK_RA6M3G_FSP_PATH",
"id": "EK_RA6M3G_FSP_PATH",
"label": "Flexible Software Package for Renesas RA MCU Family",
"optional": false,
"type": "path",
"versions": [
"3.8.0"
]
},
"freeRTOS": {
"envVar": "EK_RA6M3G_FREERTOS_DIR",
"id": "EK_RA6M3G_FREERTOS_DIR",
"label": "FreeRTOS SDK for EK-RA6M3G",
"cmakeVar": "FREERTOS_DIR",
"defaultValue": "%{Qul_ROOT}/platform/boards/renesas/ek-ra6m3g-common/3rdparty/freertos",
"validation": "tasks.c",
"type": "path",
"optional": false
}
}
)";

View File

@@ -0,0 +1,56 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto armgcc_example_baremetal_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"colorDepths": [
16
],
"id": "EXAMPLE-BAREMETAL",
"vendor": "Vendor Name"
},
"toolchain": {
"id": "armgcc",
"versions": [
"10.3.1"
],
"compiler": {
"id": "ARMGCC_DIR",
"label": "GNU Arm Embedded Toolchain",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"envVar": "ARMGCC_DIR",
"setting": "GNUArmEmbeddedToolchain",
"type": "path",
"optional": false,
"versionDetection": {
"filePattern": "bin/arm-none-eabi-g++",
"executableArgs": "--version",
"regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b"
}
},
"file": {
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"versions": [
"1.16.0"
],
"id": "EXAMPLE_SDK_DIR",
"label": "Board SDK",
"cmakeVar": "QUL_BOARD_SDK_DIR",
"type": "path",
"optional": false
}
}
)";

View File

@@ -0,0 +1,80 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto armgcc_mimxrt1050_evk_baremetal_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "MIMXRT1050-EVK-BAREMETAL",
"vendor": "NXP",
"colorDepths": [
16
],
"cmakeEntries": [
{
"label": "MCUXpresso IDE",
"type": "path",
"cmakeVar": "MCUXPRESSO_IDE_PATH",
"envVar": "MCUXpressoIDE_PATH",
"setting": "MCUXpressoIDE",
"defaultValue": {
"windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*",
"unix": "/usr/local/mcuxpressoide/"
},
"versionDetection": {
"filePattern": "ide/binaries/crt_emu_cm_redlink"
},
"optional": false
}
]
},
"toolchain": {
"id": "armgcc",
"versions": [
"10.3.1"
],
"compiler": {
"id": "ARMGCC_DIR",
"label": "GNU Arm Embedded Toolchain",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"envVar": "ARMGCC_DIR",
"setting": "GNUArmEmbeddedToolchain",
"type": "path",
"optional": false,
"versionDetection": {
"filePattern": "bin/arm-none-eabi-g++",
"executableArgs": "--version",
"regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b"
}
},
"file": {
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"cmakeVar": "QUL_BOARD_SDK_DIR",
"envVar": "EVKB_IMXRT1050_SDK_PATH",
"label": "Board SDK for MIMXRT1050-EVK",
"optional": false,
"setting": "EVKB_IMXRT1050_SDK_PATH",
"type": "path",
"versionDetection": {
"filePattern": "*_manifest_*.xml",
"regex": ".*",
"xmlAttribute": "version",
"xmlElement": "ksdk"
},
"versions": [
"2.12.0"
]
}
}
)";

View File

@@ -0,0 +1,90 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto armgcc_mimxrt1050_evk_freertos_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "MIMXRT1050-EVK-FREERTOS",
"vendor": "NXP",
"colorDepths": [
16
],
"cmakeEntries": [
{
"label": "MCUXpresso IDE",
"type": "path",
"cmakeVar": "MCUXPRESSO_IDE_PATH",
"envVar": "MCUXpressoIDE_PATH",
"setting": "MCUXpressoIDE",
"defaultValue": {
"windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*",
"unix": "/usr/local/mcuxpressoide/"
},
"versionDetection": {
"filePattern": "ide/binaries/crt_emu_cm_redlink"
},
"optional": false
}
]
},
"toolchain": {
"id": "armgcc",
"versions": [
"10.3.1"
],
"compiler": {
"id": "ARMGCC_DIR",
"label": "GNU Arm Embedded Toolchain",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"envVar": "ARMGCC_DIR",
"setting": "GNUArmEmbeddedToolchain",
"type": "path",
"optional": false,
"versionDetection": {
"filePattern": "bin/arm-none-eabi-g++",
"executableArgs": "--version",
"regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b"
}
},
"file": {
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"cmakeVar": "QUL_BOARD_SDK_DIR",
"envVar": "EVKB_IMXRT1050_SDK_PATH",
"label": "Board SDK for MIMXRT1050-EVK",
"optional": false,
"setting": "EVKB_IMXRT1050_SDK_PATH",
"type": "path",
"versionDetection": {
"filePattern": "*_manifest_*.xml",
"regex": ".*",
"xmlAttribute": "version",
"xmlElement": "ksdk"
},
"versions": [
"2.12.0"
]
},
"freeRTOS": {
"cmakeVar": "FREERTOS_DIR",
"defaultValue": "%{QUL_BOARD_SDK_DIR}/rtos/freertos/freertos_kernel",
"validation": "tasks.c",
"envVar": "IMXRT1050_FREERTOS_DIR",
"label": "FreeRTOS SDK for MIMXRT1050-EVK",
"optional": false,
"setting": "FreeRTOSSourcePackage_IMXRT1050",
"type": "path"
}
}
)";

View File

@@ -0,0 +1,70 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto armgcc_mimxrt1060_evk_baremetal_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "MIMXRT1060-EVK-BAREMETAL",
"vendor": "NXP",
"colorDepths": [
16
],
"cmakeEntries": [
{
"id": "MCU_XPRESSO_PATH",
"label": "MCUXpresso IDE",
"type": "path",
"cmakeVar": "MCUXPRESSO_IDE_PATH",
"defaultValue": {
"windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*",
"unix": "/usr/local/mcuxpressoide/"
},
"optional": false
}
]
},
"toolchain": {
"id": "armgcc",
"versions": [
"10.3.1"
],
"compiler": {
"id": "ARMGCC_DIR",
"label": "GNU Arm Embedded Toolchain",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"envVar": "ARMGCC_DIR",
"setting": "GNUArmEmbeddedToolchain",
"type": "path",
"optional": false,
"versionDetection": {
"filePattern": "bin/arm-none-eabi-g++",
"executableArgs": "--version",
"regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b"
}
},
"file": {
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"envVar": "EVK_MIMXRT1060_SDK_PATH",
"versions": [
"2.12.0"
],
"id": "NXP_SDK_DIR",
"label": "Board SDK MIMXRT1060-EVK",
"cmakeVar": "QUL_BOARD_SDK_DIR",
"type": "path",
"optional": false
}
}
)";

View File

@@ -0,0 +1,80 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto armgcc_mimxrt1064_evk_baremetal_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "MIMXRT1064-EVK-BAREMETAL",
"vendor": "NXP",
"colorDepths": [
16
],
"cmakeEntries": [
{
"label": "MCUXpresso IDE",
"type": "path",
"cmakeVar": "MCUXPRESSO_IDE_PATH",
"envVar": "MCUXpressoIDE_PATH",
"setting": "MCUXpressoIDE",
"defaultValue": {
"windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*",
"unix": "/usr/local/mcuxpressoide/"
},
"versionDetection": {
"filePattern": "ide/binaries/crt_emu_cm_redlink"
},
"optional": false
}
]
},
"toolchain": {
"id": "armgcc",
"versions": [
"10.3.1"
],
"compiler": {
"id": "ARMGCC_DIR",
"label": "GNU Arm Embedded Toolchain",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"envVar": "ARMGCC_DIR",
"setting": "GNUArmEmbeddedToolchain",
"type": "path",
"optional": false,
"versionDetection": {
"filePattern": "bin/arm-none-eabi-g++",
"executableArgs": "--version",
"regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b"
}
},
"file": {
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"cmakeVar": "QUL_BOARD_SDK_DIR",
"envVar": "EVK_MIMXRT1064_SDK_PATH",
"label": "Board SDK for MIMXRT1064-EVK",
"optional": false,
"setting": "EVK_MIMXRT1064_SDK_PATH",
"type": "path",
"versions": [
"2.12.0"
],
"versionDetection": {
"filePattern": "*_manifest_*.xml",
"regex": ".*",
"xmlAttribute": "version",
"xmlElement": "ksdk"
}
}
}
)";

View File

@@ -0,0 +1,90 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto armgcc_mimxrt1064_evk_freertos_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "MIMXRT1064-EVK-FREERTOS",
"vendor": "NXP",
"colorDepths": [
16
],
"cmakeEntries": [
{
"label": "MCUXpresso IDE",
"type": "path",
"cmakeVar": "MCUXPRESSO_IDE_PATH",
"envVar": "MCUXpressoIDE_PATH",
"setting": "MCUXpressoIDE",
"defaultValue": {
"windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*",
"unix": "/usr/local/mcuxpressoide/"
},
"versionDetection": {
"filePattern": "ide/binaries/crt_emu_cm_redlink"
},
"optional": false
}
]
},
"toolchain": {
"id": "armgcc",
"versions": [
"10.3.1"
],
"compiler": {
"id": "ARMGCC_DIR",
"label": "GNU Arm Embedded Toolchain",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"envVar": "ARMGCC_DIR",
"setting": "GNUArmEmbeddedToolchain",
"type": "path",
"optional": false,
"versionDetection": {
"filePattern": "bin/arm-none-eabi-g++",
"executableArgs": "--version",
"regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b"
}
},
"file": {
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"cmakeVar": "QUL_BOARD_SDK_DIR",
"envVar": "EVK_MIMXRT1064_SDK_PATH",
"label": "Board SDK for MIMXRT1064-EVK",
"optional": false,
"setting": "EVK_MIMXRT1064_SDK_PATH",
"type": "path",
"versions": [
"2.12.0"
],
"versionDetection": {
"filePattern": "*_manifest_*.xml",
"regex": ".*",
"xmlAttribute": "version",
"xmlElement": "ksdk"
}
},
"freeRTOS": {
"cmakeVar": "FREERTOS_DIR",
"defaultValue": "%{QUL_BOARD_SDK_DIR}/rtos/freertos/freertos_kernel",
"validation": "tasks.c",
"envVar": "IMXRT1064_FREERTOS_DIR",
"label": "FreeRTOS SDK for MIMXRT1064-EVK",
"optional": false,
"setting": "FreeRTOSSourcePackage_IMXRT1064",
"type": "path"
}
}
)";

View File

@@ -0,0 +1,88 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto armgcc_mimxrt1170_evk_freertos_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "MIMXRT1170-EVK-FREERTOS",
"vendor": "NXP",
"colorDepths": [
32
],
"cmakeEntries": [
{
"label": "MCUXpresso IDE",
"type": "path",
"cmakeVar": "MCUXPRESSO_IDE_PATH",
"envVar": "MCUXpressoIDE_PATH",
"setting": "MCUXpressoIDE",
"defaultValue": {
"windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*",
"unix": "/usr/local/mcuxpressoide/"
},
"versionDetection": {
"filePattern": "ide/binaries/crt_emu_cm_redlink"
},
"optional": false
}
]
},
"toolchain": {
"id": "armgcc",
"versions": [
"10.3.1"
],
"compiler": {
"id": "ARMGCC_DIR",
"label": "GNU Arm Embedded Toolchain",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"envVar": "ARMGCC_DIR",
"setting": "GNUArmEmbeddedToolchain",
"type": "path",
"optional": false,
"versionDetection": {
"filePattern": "bin/arm-none-eabi-g++",
"executableArgs": "--version",
"regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b"
}
},
"file": {
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"cmakeVar": "QUL_BOARD_SDK_DIR",
"envVar": "EVK_MIMXRT1170_SDK_PATH",
"versions": [
"2.12.0"
],
"label": "Board SDK for MIMXRT1170-EVK",
"type": "path",
"setting": "EVK_MIMXRT1170_SDK_PATH",
"versionDetection": {
"filePattern": "*_manifest_*.xml",
"regex": ".*",
"xmlAttribute": "version",
"xmlElement": "ksdk"
}
},
"freeRTOS": {
"cmakeVar": "FREERTOS_DIR",
"envVar": "EVK_MIMXRT1170_FREERTOS_PATH",
"label": "FreeRTOS SDK for MIMXRT1170-EVK",
"defaultValue": "%{QUL_BOARD_SDK_DIR}/rtos/freertos/freertos_kernel",
"validation": "tasks.c",
"type": "path",
"optional": false
}
}
)";

View File

@@ -1,90 +0,0 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto armgcc_nxp_1050_json = R"({
"qulVersion": "2.0.0",
"compatVersion": "1",
"platform": {
"id": "MIMXRT1050-EVK-FREERTOS",
"vendor": "NXP",
"colorDepths": [
16
],
"cmakeEntries": [
{
"label": "Qt for MCUs SDK",
"type": "path",
"cmakeVar": "Qul_ROOT",
"envVar": "Qul_DIR",
"setting": "QtForMCUsSdk",
"optional": false
},
{
"id": "MCU_XPRESSO_PATH",
"label": "MCUXpresso IDE",
"type": "path",
"cmakeVar": "MCUXPRESSO_IDE_PATH",
"defaultValue": {
"windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*",
"unix": "/usr/local/mcuxpressoide/"
},
"optional": false
}
]
},
"toolchain": {
"id": "armgcc",
"versions": [
"9.3.1",
"10.3.1"
],
"compiler": {
"label": "GNU Arm Embedded Toolchain",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"envVar": "ARMGCC_DIR",
"setting": "GNUArmEmbeddedToolchain",
"type": "path",
"optional": false,
"versionDetection" : {
"filePattern": "bin/arm-none-eabi-g++",
"executableArgs": "--version",
"regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b"
}
},
"file": {
"label": "CMake Toolchain File",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/armgcc.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"cmakeVar": "QUL_BOARD_SDK_DIR",
"envVar": "EVKB_IMXRT1050_SDK_PATH",
"label": "Board SDK for MIMXRT1050-EVK",
"optional": false,
"setting": "EVKB_IMXRT1050_SDK_PATH",
"type": "path",
"versionDetection": {
"filePattern": "*_manifest_*.xml",
"regex": ".*",
"xmlAttribute": "version",
"xmlElement": "ksdk"
},
"versions": ["2.11.0"]
},
"freeRTOS": {
"cmakeVar": "FREERTOS_DIR",
"defaultValue": "%{QUL_BOARD_SDK_DIR}/rtos/freertos/freertos_kernel",
"validation": "tasks.c",
"envVar": "IMXRT1050_FREERTOS_DIR",
"label": "FreeRTOS SDK for MIMXRT1050-EVK",
"optional": false,
"setting": "FreeRTOSSourcePackage_IMXRT1050",
"type": "path"
}
})";

View File

@@ -1,75 +0,0 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto armgcc_nxp_1064_json = R"(
{
"boardSdk": {
"cmakeVar": "QUL_BOARD_SDK_DIR",
"envVar": "EVK_MIMXRT1064_SDK_PATH",
"label": "Board SDK for MIMXRT1064-EVK",
"optional": false,
"setting": "EVK_MIMXRT1064_SDK_PATH",
"type": "path",
"versions": ["2.11.1"]
},
"compatVersion": "1",
"freeRTOS": {
"cmakeVar": "FREERTOS_DIR",
"defaultValue": "%{QUL_BOARD_SDK_DIR}/rtos/freertos/freertos_kernel",
"validation": "tasks.c",
"envVar": "IMXRT1064_FREERTOS_DIR",
"label": "FreeRTOS SDK for MIMXRT1064-EVK",
"optional": false,
"setting": "FreeRTOSSourcePackage_IMXRT1064",
"type": "path"
},
"platform": {
"cmakeCacheEntries": [
{
"camekVar": "Qul_ROOT",
"envVar": "Qul_DIR",
"label": "Qt for MCUs SDK",
"optional": false,
"type": "path"
},
{
"camekVar": "MCUXPRESSO_IDE_PATH",
"defaultValue": {
"unix": "/usr/local/mcuxpressoide/",
"windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*"
},
"id": "MCU_XPRESSO_PATH",
"label": "MCUXpresso IDE",
"optional": false,
"type": "path"
}
],
"colorDepths": [16],
"environmentEntries": [],
"id": "MIMXRT1064-EVK-FREERTOS",
"pathEntries": [],
"vendor": "NXP"
},
"qulVersion": "2.3.0",
"toolchain": {
"compiler": {
"camekVar": "QUL_TARGET_TOOLCHAIN_DIR",
"id": "ARMGCC_DIR",
"label": "GNU Arm Embedded Toolchain",
"optional": false,
"type": "path"
},
"file": {
"camekVar": "CMAKE_TOOLCHAIN_FILE",
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/armgcc.cmake",
"label": "CMake Toolchain File",
"optional": false,
"type": "file",
"visible": false
},
"id": "armgcc",
"versions": ["9.3.1"]
}
})";

View File

@@ -1,92 +0,0 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto armgcc_nxp_mimxrt1170_evk_freertos_json = R"({
"qulVersion": "2.1.5",
"compatVersion": "1",
"platform": {
"id": "MIMXRT1170-EVK-FREERTOS",
"vendor": "NXP",
"colorDepths": [
32
],
"pathEntries": [],
"environmentEntries": [],
"cmakeEntries": [
{
"id": "Qul_DIR",
"description": "Qt for MCUs SDK",
"type": "path",
"cmakeVar": "Qul_ROOT",
"optional": false
},
{
"id": "MCU_XPRESSO_PATH",
"description": "MCUXpresso IDE",
"type": "path",
"cmakeVar": "MCUXPRESSO_IDE_PATH",
"defaultValue": {
"windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*",
"unix": "/usr/local/mcuxpressoide/"
},
"optional": false
}
]
},
"toolchain": {
"id": "armgcc",
"versions": [
"9.3.1"
],
"compiler": {
"id": "ARMGCC_DIR",
"label": "GNU Arm Embedded Toolchain",
"description": "GNU Arm Embedded Toolchain",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"envVar": "ARMGCC_DIR",
"setting": "GNUArmEmbeddedToolchain",
"type": "path",
"optional": false
},
"file": {
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
"label": "CMake Toolchain File",
"description": "CMake Toolchain File",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"envVar": "EVK_MIMXRT1170_SDK_PATH",
"versions": [
"2.10.1"
],
"cmakeEntries": [
{
"id": "NXP_SDK_DIR",
"description": "Board SDK for MIMXRT1170-EVK",
"cmakeVar": "QUL_BOARD_SDK_DIR",
"type": "path",
"optional": false
}
]
},
"freeRTOS": {
"envVar": "EVK_MIMXRT1170_FREERTOS_PATH",
"cmakeEntries": [
{
"id": "NXP_FREERTOS_DIR",
"description": "FreeRTOS SDK for MIMXRT1170-EVK",
"cmakeVar": "FREERTOS_DIR",
"defaultValue": "%{QUL_BOARD_SDK_DIR}/rtos/freertos/freertos_kernel",
"type": "path",
"optional": false
}
]
}
})";

View File

@@ -0,0 +1,76 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto armgcc_stm32f469i_discovery_baremetal_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "STM32F469I-DISCOVERY-BAREMETAL",
"vendor": "ST",
"colorDepths": [
24
],
"cmakeEntries": [
{
"id": "STM32CubeProgrammer_PATH",
"label": "STM32CubeProgrammer",
"type": "path",
"defaultValue": {
"windows": "%{Env:PROGRAMSANDFILES}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/",
"unix": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/"
},
"optional": false
}
]
},
"toolchain": {
"id": "armgcc",
"versions": [
"10.3.1"
],
"compiler": {
"id": "ARMGCC_DIR",
"label": "GNU Arm Embedded Toolchain",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"envVar": "ARMGCC_DIR",
"setting": "GNUArmEmbeddedToolchain",
"type": "path",
"optional": false,
"versionDetection": {
"filePattern": "bin/arm-none-eabi-g++",
"executableArgs": "--version",
"regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b"
}
},
"file": {
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"envVar": "STM32Cube_FW_F4_SDK_PATH",
"setting": "STM32Cube_FW_F4_SDK_PATH",
"versions": [
"1.27.0"
],
"versionDetection": {
"filePattern": "package.xml",
"xmlElement": "PackDescription",
"xmlAttribute": "Release",
"regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b"
},
"id": "ST_SDK_DIR",
"label": "Board SDK for STM32F469I-Discovery",
"cmakeVar": "QUL_BOARD_SDK_DIR",
"type": "path",
"optional": false
}
}
)";

View File

@@ -0,0 +1,76 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto armgcc_stm32f769i_discovery_baremetal_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "STM32F769I-DISCOVERY-BAREMETAL",
"vendor": "ST",
"colorDepths": [
32
],
"cmakeEntries": [
{
"id": "STM32CubeProgrammer_PATH",
"label": "STM32CubeProgrammer",
"type": "path",
"setting": "Stm32CubeProgrammer",
"defaultValue": {
"windows": "%{Env:PROGRAMSANDFILES}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/",
"unix": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/"
},
"optional": false
}
]
},
"toolchain": {
"id": "armgcc",
"versions": [
"10.3.1"
],
"compiler": {
"id": "ARMGCC_DIR",
"label": "GNU Arm Embedded Toolchain",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"envVar": "ARMGCC_DIR",
"setting": "GNUArmEmbeddedToolchain",
"type": "path",
"optional": false,
"versionDetection": {
"filePattern": "bin/arm-none-eabi-g++",
"executableArgs": "--version",
"regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b"
}
},
"file": {
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"envVar": "STM32Cube_FW_F7_SDK_PATH",
"setting": "STM32Cube_FW_F7_SDK_PATH",
"versions": [
"1.17.0"
],
"versionDetection": {
"filePattern": "package.xml",
"xmlElement": "PackDescription",
"xmlAttribute": "Release",
"regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b"
},
"label": "Board SDK for STM32F769I-Discovery",
"cmakeVar": "QUL_BOARD_SDK_DIR",
"type": "path",
"optional": false
}
}
)";

View File

@@ -0,0 +1,86 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto armgcc_stm32f769i_discovery_freertos_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "STM32F769I-DISCOVERY-FREERTOS",
"vendor": "ST",
"colorDepths": [
32
],
"cmakeEntries": [
{
"id": "STM32CubeProgrammer_PATH",
"label": "STM32CubeProgrammer",
"type": "path",
"setting": "Stm32CubeProgrammer",
"defaultValue": {
"windows": "%{Env:PROGRAMSANDFILES}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/",
"unix": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/"
},
"optional": false
}
]
},
"toolchain": {
"id": "armgcc",
"versions": [
"10.3.1"
],
"compiler": {
"id": "ARMGCC_DIR",
"label": "GNU Arm Embedded Toolchain",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"envVar": "ARMGCC_DIR",
"setting": "GNUArmEmbeddedToolchain",
"type": "path",
"optional": false,
"versionDetection": {
"filePattern": "bin/arm-none-eabi-g++",
"executableArgs": "--version",
"regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b"
}
},
"file": {
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"envVar": "STM32Cube_FW_F7_SDK_PATH",
"setting": "STM32Cube_FW_F7_SDK_PATH",
"versions": [
"1.17.0"
],
"versionDetection": {
"filePattern": "package.xml",
"xmlElement": "PackDescription",
"xmlAttribute": "Release",
"regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b"
},
"label": "Board SDK for STM32F769I-Discovery",
"cmakeVar": "QUL_BOARD_SDK_DIR",
"type": "path",
"optional": false
},
"freeRTOS": {
"envVar": "STM32F7_FREERTOS_DIR",
"label": "FreeRTOS SDK for STM32F769I-Discovery",
"cmakeVar": "FREERTOS_DIR",
"defaultValue": "%{QUL_BOARD_SDK_DIR}/Middlewares/Third_Party/FreeRTOS/Source",
"validation": "tasks.c",
"type": "path",
"setting": "FreeRTOSSourcePackage_STM32F7",
"optional": false
}
}
)";

View File

@@ -1,94 +0,0 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto armgcc_stm32f769i_freertos_json = R"({
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "STM32F769I-DISCOVERY-FREERTOS",
"vendor": "ST",
"colorDepths": [
32
],
"pathEntries": [
{
"id": "STM32CubeProgrammer_PATH",
"label": "STM32CubeProgrammer",
"type": "path",
"defaultValue": {
"windows": "%{Env:PROGRAMSANDFILES}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/",
"unix": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/"
},
"optional": false
}
],
"environmentEntries": [],
"cmakeEntries": [
{
"id": "Qul_DIR",
"label": "Qt for MCUs SDK",
"type": "path",
"setting": "QtForMCUsSdk",
"cmakeVar": "Qul_ROOT",
"optional": false
}
]
},
"toolchain": {
"id": "armgcc",
"versions": [
"9.3.1",
"10.3.1"
],
"compiler": {
"id": "ARMGCC_DIR",
"label": "GNU Arm Embedded Toolchain",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"envVar": "ARMGCC_DIR",
"setting": "GNUArmEmbeddedToolchain",
"type": "path",
"optional": false,
"versionDetection" : {
"filePattern": "bin/arm-none-eabi-g++",
"executableArgs": "--version",
"regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b"
}
},
"file": {
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
"label": "CMake Toolchain File",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"envVar": "STM32Cube_FW_F7_SDK_PATH",
"setting": "STM32Cube_FW_F7_SDK_PATH",
"versions": [ "1.16.0" ],
"versionDetection" : {
"filePattern": "package.xml",
"xmlElement": "PackDescription",
"xmlAttribute": "Release",
"regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b"
},
"label": "Board SDK for STM32F769I-Discovery",
"cmakeVar": "QUL_BOARD_SDK_DIR",
"type": "path",
"optional": false
},
"freeRTOS": {
"envVar": "STM32F7_FREERTOS_DIR",
"label": "FreeRTOS SDK for STM32F769I-Discovery",
"cmakeVar": "FREERTOS_DIR",
"defaultValue": "%{QUL_BOARD_SDK_DIR}/Middlewares/Third_Party/FreeRTOS/Source",
"validation": "tasks.c",
"type": "path",
"setting": "FreeRTOSSourcePackage_STM32F7",
"optional": false
}
})";

View File

@@ -0,0 +1,77 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto armgcc_stm32h750b_discovery_baremetal_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "STM32H750B-DISCOVERY-BAREMETAL",
"vendor": "ST",
"colorDepths": [
32
],
"cmakeEntries": [
{
"id": "STM32CubeProgrammer_PATH",
"label": "STM32CubeProgrammer",
"type": "path",
"setting": "Stm32CubeProgrammer",
"defaultValue": {
"windows": "%{Env:PROGRAMSANDFILES}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/",
"unix": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/"
},
"optional": false
}
]
},
"toolchain": {
"id": "armgcc",
"versions": [
"10.3.1"
],
"compiler": {
"id": "ARMGCC_DIR",
"label": "GNU Arm Embedded Toolchain",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"envVar": "ARMGCC_DIR",
"setting": "GNUArmEmbeddedToolchain",
"type": "path",
"optional": false,
"versionDetection": {
"filePattern": "bin/arm-none-eabi-g++",
"executableArgs": "--version",
"regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b"
}
},
"file": {
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"envVar": "STM32Cube_FW_H7_SDK_PATH",
"setting": "STM32Cube_FW_H7_SDK_PATH",
"versions": [
"1.10.0"
],
"versionDetection": {
"filePattern": "package.xml",
"xmlElement": "PackDescription",
"xmlAttribute": "Release",
"regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b"
},
"id": "ST_SDK_DIR",
"label": "Board SDK for STM32H750B-Discovery",
"cmakeVar": "QUL_BOARD_SDK_DIR",
"type": "path",
"optional": false
}
}
)";

View File

@@ -1,86 +0,0 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto armgcc_stm32h750b_metal_json = R"({
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "STM32H750B-DISCOVERY-BAREMETAL",
"vendor": "ST",
"colorDepths": [
32
],
"pathEntries": [
{
"id": "STM32CubeProgrammer_PATH",
"label": "STM32CubeProgrammer",
"type": "path",
"defaultValue": {
"windows": "%{Env:PROGRAMSANDFILES}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/",
"unix": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/"
},
"optional": false
}
],
"environmentEntries": [],
"cmakeEntries": [
{
"id": "Qul_DIR",
"label": "Qt for MCUs SDK",
"type": "path",
"setting": "QtForMCUsSdk",
"cmakeVar": "Qul_ROOT",
"optional": false
}
]
},
"toolchain": {
"id": "armgcc",
"versions": [
"9.3.1"
],
"compiler": {
"id": "ARMGCC_DIR",
"label": "GNU Arm Embedded Toolchain",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"envVar": "ARMGCC_DIR",
"setting": "GNUArmEmbeddedToolchain",
"type": "path",
"optional": false,
"versionDetection" : {
"filePattern": "bin/arm-none-eabi-g++",
"executableArgs": "--version",
"regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b"
}
},
"file" : {
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
"label": "CMake Toolchain File",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"envVar": "STM32Cube_FW_H7_SDK_PATH",
"setting": "STM32Cube_FW_H7_SDK_PATH",
"versions": [
"1.5.0"
],
"versionDetection" : {
"filePattern": "package.xml",
"xmlElement": "PackDescription",
"xmlAttribute": "Release",
"regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b"
},
"id": "ST_SDK_DIR",
"label": "Board SDK for STM32H750B-Discovery",
"cmakeVar": "QUL_BOARD_SDK_DIR",
"type": "path",
"optional": false
}
})";

View File

@@ -0,0 +1,122 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto errors_json = R"(
{
"compatVersion": "1",
"qulVersion": "2.0.0",
"boardSdk": {
"cmakeEntries": [
{
"id": "NXP_SDK_DIR",
"cmakeVar": "QUL_BOARD_SDK_DIR",
"label": "This package has no label",
"optional": false,
"type": "path",
"versions": ["2.10.0"]
}
{
"id": "NXP_SDK_DIR",
"cmakeVar": "QUL_BOARD_SDK_DIR",
"label": "",
"label": "This package has empty label",
"optional": false,
"type": "path",
"versions": ["2.10.0"]
}
],
"envVar": "EVK_MIMXRT1064_SDK_PATH",
"versions": ["2.10.0"]
}
}
)";
constexpr auto unpaired_square_bracket_json = R"(
{
"compatVersion": "1",
"qulVersion": "2.0.0",
"toolchain": {
"id": "greenhills",
"versions": [
"2018.1.5"
],
"compiler": {
"label": "Green Hills Compiler",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"setting": "GHSToolchain",
"label": "IAR ARM Compiler",
"type": "path",
"optional": false
},
"file": {
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/ghs.cmake",
"visible": false,
"optional": false
}
]
},
}
)";
constexpr auto mulitple_toolchain_versions = R"(
{
"compatVersion": "1",
"qulVersion": "2.0.0",
"platform": {
"id": "id",
"vendor": "ST",
"colorDepths": [
32
],
"cmakeEntries": [
{
"label": "Qt for MCUs SDK",
"type": "path",
"setting": "QtForMCUsSdk",
"cmakeVar": "Qul_ROOT",
"envVar": "Qul_DIR",
"optional": false,
"versionDetection": {
"filePattern": "bin/qmltocpp"
}
},
{
"id": "STM32CubeProgrammer_PATH",
"label": "STM32CubeProgrammer",
"type": "path",
"setting": "Stm32CubeProgrammer",
"defaultValue": {
"windows": "%{Env:PROGRAMSANDFILES}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/",
"unix": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/"
},
"optional": false
}
]
},
"toolchain": {
"id": "greenhills",
"versions": [
"2018.1.5",
"123"
],
"compiler": {
"label": "IAR ARM Compiler",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"setting": "GHSToolchain",
"type": "path",
"optional": false
},
"file": {
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/ghs.cmake",
"visible": false,
"optional": false
}
}
}
)";

View File

@@ -3,43 +3,33 @@
#pragma once #pragma once
constexpr auto gcc_desktop_json = R"({ constexpr auto gcc_desktop_json = R"(
"qulVersion": "2.3.0", {
"compatVersion": "1", "qulVersion": "2.3.0",
"platform": { "compatVersion": "1",
"id": "Qt", "platform": {
"platformName": "Desktop", "id": "Qt",
"vendor": "Qt", "platformName": "Desktop",
"colorDepths": [ "vendor": "Qt",
32 "colorDepths": [
], 32
"pathEntries": [ ]
], },
"environmentEntries": [ "toolchain": {
], "id": "gcc",
"cmakeEntries": [ "versions": [
{ "9.4.0",
"envVar": "Qul_DIR", "10.3.1"
"label": "Qt for MCUs SDK", ],
"type": "path", "compiler": {
"cmakeVar": "Qul_ROOT", "label": "GNU Toolchain",
"optional": false "defaultValue": "/usr",
} "versionDetection": {
] "executableArgs": "--version",
}, "filePattern": "bin/g++",
"toolchain": { "regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b"
"id": "gcc", }
"versions": [ }
"9.4.0",
"10.3.1"
],
"compiler": {
"defaultValue": "/usr",
"versionDetection": {
"filePattern": "bin/g++",
"executableArgs": "--version",
"regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b"
}
} }
} }
})"; )";

View File

@@ -3,63 +3,68 @@
#pragma once #pragma once
constexpr auto ghs_rh850_d1m1a_baremetal_json = R"({ constexpr auto ghs_rh850_d1m1a_baremetal_json = R"(
"qulVersion": "2.1.5", {
"compatVersion": "1", "qulVersion": "2.3.0",
"platform": { "compatVersion": "1",
"id": "RH850-D1M1A-BAREMETAL", "platform": {
"vendor": "RENESAS", "id": "RH850-D1M1A-BAREMETAL",
"colorDepths": [ "vendor": "RENESAS",
32 "colorDepths": [
], 32
"pathEntries": [], ],
"environmentEntries": [], "cmakeEntries": [
"cmakeEntries": [ {
{ "id": "FlashProgrammer_path",
"id": "Qul_DIR", "setting": "FlashProgrammerPath",
"description": "Qt for MCUs SDK", "label": "Path to Renesas Flash Programmer",
"type": "path", "type": "path",
"cmakeVar": "Qul_ROOT", "cmakeVar": "RENESAS_FLASH_PROGRAMMER_PATH",
"optional": false "defaultValue": {
} "windows": "%{Env:PROGRAMSANDFILES}/Renesas Electronics/Programming Tools/Renesas Flash Programmer V3.09",
] "unix": "%{Env:HOME}"
}, },
"toolchain": { "envVar": "RenesasFlashProgrammer_PATH",
"id": "greenhills", "optional": true
"versions": [ }
"2018.1.5" ]
],
"compiler": {
"description": "Green Hills Compiler",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"setting": "GHSToolchain",
"label": "Green Hills Compiler",
"type": "path",
"optional": false
}, },
"file": { "toolchain": {
"description": "CMake Toolchain File", "id": "greenhills",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE", "versions": [
"type": "file", "2018.1.5"
"defaultValue": "/opt/qtformcu/2.2/lib/cmake/Qul/toolchain/ghs.cmake", ],
"visible": false, "compiler": {
"optional": false "cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
} "setting": "GHSToolchain",
}, "label": "Green Hills Compiler",
"boardSdk": { "type": "path",
"envVar": "RGL_DIR", "optional": false
"setting": "RGL_DIR", },
"versions": [ "2.0.0a" ], "file": {
"id": "RGL_DIR", "cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"description": "Renesas Graphics Library", "type": "file",
"cmakeVar": "QUL_BOARD_SDK_DIR", "defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/ghs.cmake",
"type": "path", "visible": false,
"defaultValue": "/Renesas_Electronics/D1x_RGL/rgl_ghs_D1Mx_obj_V.2.0.0a", "optional": false
"versionDetection": { }
"filePattern" : "rgl_*_obj_*",
"regex" : "\\d+\\.\\d+\\.\\w+",
"isFile" : false
}, },
"optional": false "boardSdk": {
} "envVar": "RGL_DIR",
})"; "setting": "RGL_DIR",
"versions": [
"2.0.0a"
],
"label": "Renesas Graphics Library",
"cmakeVar": "QUL_BOARD_SDK_DIR",
"type": "path",
"defaultValue": "/Renesas_Electronics/D1x_RGL/rgl_ghs_D1Mx_obj_V.2.0.0a",
"versionDetection": {
"filePattern": "rgl_*_obj_*",
"regex": "\\d+\\.\\d+\\.\\w+",
"isFile": false
},
"optional": false
}
}
)";

View File

@@ -0,0 +1,59 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto ghs_tviic2d4m_baremetal_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "TVIIC2D4M-BAREMETAL",
"vendor": "CYPRESS",
"colorDepths": [
32
],
"cmakeEntries": [
{
"id": "INFINEON_AUTO_FLASH_UTILITY_DIR",
"label": "Cypress Auto Flash Utility",
"type": "path",
"cmakeVar": "INFINEON_AUTO_FLASH_UTILITY_DIR",
"optional": false
}
]
},
"toolchain": {
"id": "arm-greenhills",
"versions": [
"201954"
],
"compiler": {
"id": "GHS_ARM_DIR",
"label": "Green Hills Compiler for ARM",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"type": "path",
"optional": false
},
"file": {
"id": "GHS_ARM_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/ghs-arm.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"envVar": "TVII_GRAPHICS_DRIVER_DIR",
"versions": [
"V1e.1.0"
],
"id": "TVII_GRAPHICS_DRIVER_DIR",
"label": "Graphics Driver for Traveo II Cluster Series",
"cmakeVar": "QUL_BOARD_SDK_DIR",
"type": "path",
"optional": false
}
}
)";

View File

@@ -0,0 +1,59 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto ghs_tviic2d6m_baremetal_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "TVIIC2D6M-BAREMETAL",
"vendor": "CYPRESS",
"colorDepths": [
32
],
"cmakeEntries": [
{
"id": "INFINEON_AUTO_FLASH_UTILITY_DIR",
"label": "Cypress Auto Flash Utility",
"type": "path",
"cmakeVar": "INFINEON_AUTO_FLASH_UTILITY_DIR",
"optional": false
}
]
},
"toolchain": {
"id": "arm-greenhills",
"versions": [
"201954"
],
"compiler": {
"id": "GHS_ARM_DIR",
"label": "Green Hills Compiler for ARM",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"type": "path",
"optional": false
},
"file": {
"id": "GHS_ARM_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/ghs-arm.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"envVar": "TVII_GRAPHICS_DRIVER_DIR",
"versions": [
"V1e.1.0"
],
"id": "TVII_GRAPHICS_DRIVER_DIR",
"label": "Graphics Driver for Traveo II Cluster Series",
"cmakeVar": "QUL_BOARD_SDK_DIR",
"type": "path",
"optional": false
}
}
)";

View File

@@ -0,0 +1,65 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto iar_ek_ra6m3g_baremetal_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "TVIIC2D6M-BAREMETAL",
"vendor": "CYPRESS",
"colorDepths": [
32
],
"cmakeEntries": [
{
"id": "INFINEON_AUTO_FLASH_UTILITY_DIR",
"label": "Cypress Auto Flash Utility",
"type": "path",
"cmakeVar": "INFINEON_AUTO_FLASH_UTILITY_DIR",
"optional": false
}
]
},
"toolchain": {
"id": "iar",
"versions": [
"8.22.3"
],
"compiler": {
"id": "IARToolchain",
"setting": "IARToolchain",
"envVar": "IAR_ARM_COMPILER_DIR",
"label": "IAR ARM Compiler",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"type": "path",
"versionDetection": {
"filePattern": "bin/iccarm",
"executableArgs": "--version",
"regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b"
}
},
"file": {
"id": "IAR_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/iar.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"envVar": "TVII_GRAPHICS_DRIVER_DIR",
"versions": [
"V1e.1.0"
],
"id": "TVII_GRAPHICS_DRIVER_DIR",
"label": "Graphics Driver for Traveo II Cluster Series",
"cmakeVar": "QUL_BOARD_SDK_DIR",
"type": "path",
"optional": false
}
}
)";

View File

@@ -0,0 +1,80 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto iar_ek_ra6m3g_freertos_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "EK-RA6M3G-FREERTOS",
"vendor": "RENESAS",
"colorDepths": [
16
],
"cmakeEntries": [
{
"cmakeVar": "JLINK_PATH",
"setting": "JLinkPath",
"envVar": "JLINK_PATH",
"label": "Path to SEGGER J-Link",
"type": "path",
"defaultValue": {
"windows": "%{Env:PROGRAMSANDFILES}/SEGGER/JLink",
"unix": "/opt/SEGGER/JLink"
},
"optional": true
}
]
},
"toolchain": {
"id": "iar",
"versions": [
"9.20.4"
],
"compiler": {
"id": "IARToolchain",
"setting": "IARToolchain",
"envVar": "IAR_ARM_COMPILER_DIR",
"label": "IAR ARM Compiler",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"type": "path",
"versionDetection": {
"filePattern": "bin/iccarm",
"executableArgs": "--version",
"regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b"
}
},
"file": {
"id": "IAR_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/iar.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"cmakeVar": "QUL_BOARD_SDK_DIR",
"envVar": "EK_RA6M3G_FSP_PATH",
"id": "EK_RA6M3G_FSP_PATH",
"label": "Flexible Software Package for Renesas RA MCU Family",
"optional": false,
"type": "path",
"versions": [
"3.8.0"
]
},
"freeRTOS": {
"envVar": "EK_RA6M3G_FREERTOS_DIR",
"id": "EK_RA6M3G_FREERTOS_DIR",
"label": "FreeRTOS SDK for EK-RA6M3G",
"cmakeVar": "FREERTOS_DIR",
"defaultValue": "%{Qul_ROOT}/platform/boards/renesas/ek-ra6m3g-common/3rdparty/freertos",
"validation": "tasks.c",
"type": "path",
"optional": false
}
}
)";

View File

@@ -0,0 +1,55 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto iar_example_baremetal_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "EXAMPLE-BAREMETAL",
"vendor": "Vendor Name",
"colorDepths": [
16
]
},
"toolchain": {
"id": "iar",
"versions": [
"9.20.4"
],
"compiler": {
"id": "IARToolchain",
"setting": "IARToolchain",
"envVar": "IAR_ARM_COMPILER_DIR",
"label": "IAR ARM Compiler",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"type": "path",
"versionDetection": {
"filePattern": "bin/iccarm",
"executableArgs": "--version",
"regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b"
}
},
"file": {
"id": "IAR_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/iar.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"versions": [
"1.16.0"
],
"id": "EXAMPLE_SDK_DIR",
"label": "Board SDK",
"cmakeVar": "QUL_BOARD_SDK_DIR",
"type": "path",
"optional": false
}
}
)";

View File

@@ -0,0 +1,79 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto iar_mimxrt1050_evk_baremetal_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "MIMXRT1050-EVK-BAREMETAL",
"vendor": "NXP",
"colorDepths": [
16
],
"cmakeEntries": [
{
"label": "MCUXpresso IDE",
"type": "path",
"cmakeVar": "MCUXPRESSO_IDE_PATH",
"envVar": "MCUXpressoIDE_PATH",
"setting": "MCUXpressoIDE",
"defaultValue": {
"windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*",
"unix": "/usr/local/mcuxpressoide/"
},
"versionDetection": {
"filePattern": "ide/binaries/crt_emu_cm_redlink"
},
"optional": false
}
]
},
"toolchain": {
"id": "iar",
"versions": [
"9.20.4"
],
"compiler": {
"id": "IARToolchain",
"setting": "IARToolchain",
"envVar": "IAR_ARM_COMPILER_DIR",
"label": "IAR ARM Compiler",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"type": "path",
"versionDetection": {
"filePattern": "bin/iccarm",
"executableArgs": "--version",
"regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b"
}
},
"file": {
"id": "IAR_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/iar.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"cmakeVar": "QUL_BOARD_SDK_DIR",
"envVar": "EVKB_IMXRT1050_SDK_PATH",
"label": "Board SDK for MIMXRT1050-EVK",
"optional": false,
"setting": "EVKB_IMXRT1050_SDK_PATH",
"type": "path",
"versionDetection": {
"filePattern": "*_manifest_*.xml",
"regex": ".*",
"xmlAttribute": "version",
"xmlElement": "ksdk"
},
"versions": [
"2.12.0"
]
}
}
)";

View File

@@ -0,0 +1,89 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto iar_mimxrt1050_evk_freertos_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "MIMXRT1050-EVK-FREERTOS",
"vendor": "NXP",
"colorDepths": [
16
],
"cmakeEntries": [
{
"label": "MCUXpresso IDE",
"type": "path",
"cmakeVar": "MCUXPRESSO_IDE_PATH",
"envVar": "MCUXpressoIDE_PATH",
"setting": "MCUXpressoIDE",
"defaultValue": {
"windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*",
"unix": "/usr/local/mcuxpressoide/"
},
"versionDetection": {
"filePattern": "ide/binaries/crt_emu_cm_redlink"
},
"optional": false
}
]
},
"toolchain": {
"id": "iar",
"versions": [
"9.20.4"
],
"compiler": {
"id": "IARToolchain",
"setting": "IARToolchain",
"envVar": "IAR_ARM_COMPILER_DIR",
"label": "IAR ARM Compiler",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"type": "path",
"versionDetection": {
"filePattern": "bin/iccarm",
"executableArgs": "--version",
"regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b"
}
},
"file": {
"id": "IAR_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/iar.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"cmakeVar": "QUL_BOARD_SDK_DIR",
"envVar": "EVKB_IMXRT1050_SDK_PATH",
"label": "Board SDK for MIMXRT1050-EVK",
"optional": false,
"setting": "EVKB_IMXRT1050_SDK_PATH",
"type": "path",
"versionDetection": {
"filePattern": "*_manifest_*.xml",
"regex": ".*",
"xmlAttribute": "version",
"xmlElement": "ksdk"
},
"versions": [
"2.12.0"
]
},
"freeRTOS": {
"cmakeVar": "FREERTOS_DIR",
"defaultValue": "%{QUL_BOARD_SDK_DIR}/rtos/freertos/freertos_kernel",
"validation": "tasks.c",
"envVar": "IMXRT1050_FREERTOS_DIR",
"label": "FreeRTOS SDK for MIMXRT1050-EVK",
"optional": false,
"setting": "FreeRTOSSourcePackage_IMXRT1050",
"type": "path"
}
}
)";

View File

@@ -0,0 +1,79 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto iar_mimxrt1060_evk_baremetal_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "MIMXRT1060-EVK-BAREMETAL",
"vendor": "NXP",
"colorDepths": [
16
],
"cmakeEntries": [
{
"label": "MCUXpresso IDE",
"type": "path",
"cmakeVar": "MCUXPRESSO_IDE_PATH",
"envVar": "MCUXpressoIDE_PATH",
"setting": "MCUXpressoIDE",
"defaultValue": {
"windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*",
"unix": "/usr/local/mcuxpressoide/"
},
"versionDetection": {
"filePattern": "ide/binaries/crt_emu_cm_redlink"
},
"optional": false
}
]
},
"toolchain": {
"id": "iar",
"versions": [
"9.20.4"
],
"compiler": {
"id": "IARToolchain",
"setting": "IARToolchain",
"envVar": "IAR_ARM_COMPILER_DIR",
"label": "IAR ARM Compiler",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"type": "path",
"versionDetection": {
"filePattern": "bin/iccarm",
"executableArgs": "--version",
"regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b"
}
},
"file": {
"id": "IAR_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/iar.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"cmakeVar": "QUL_BOARD_SDK_DIR",
"envVar": "EVK_MIMXRT1060_SDK_PATH",
"label": "Board SDK for MIMXRT1060-EVK",
"optional": false,
"setting": "EVK_MIMXRT1060_SDK_PATH",
"type": "path",
"versions": [
"2.12.0"
],
"versionDetection": {
"filePattern": "*_manifest_*.xml",
"regex": ".*",
"xmlAttribute": "version",
"xmlElement": "ksdk"
}
}
}
)";

View File

@@ -0,0 +1,79 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto iar_mimxrt1064_evk_baremetal_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "MIMXRT1064-EVK-BAREMETAL",
"vendor": "NXP",
"colorDepths": [
16
],
"cmakeEntries": [
{
"label": "MCUXpresso IDE",
"type": "path",
"cmakeVar": "MCUXPRESSO_IDE_PATH",
"envVar": "MCUXpressoIDE_PATH",
"setting": "MCUXpressoIDE",
"defaultValue": {
"windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*",
"unix": "/usr/local/mcuxpressoide/"
},
"versionDetection": {
"filePattern": "ide/binaries/crt_emu_cm_redlink"
},
"optional": false
}
]
},
"toolchain": {
"id": "iar",
"versions": [
"9.20.4"
],
"compiler": {
"id": "IARToolchain",
"setting": "IARToolchain",
"envVar": "IAR_ARM_COMPILER_DIR",
"label": "IAR ARM Compiler",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"type": "path",
"versionDetection": {
"filePattern": "bin/iccarm",
"executableArgs": "--version",
"regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b"
}
},
"file": {
"id": "IAR_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/iar.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"cmakeVar": "QUL_BOARD_SDK_DIR",
"envVar": "EVK_MIMXRT1064_SDK_PATH",
"label": "Board SDK for MIMXRT1064-EVK",
"optional": false,
"setting": "EVK_MIMXRT1064_SDK_PATH",
"type": "path",
"versions": [
"2.12.0"
],
"versionDetection": {
"filePattern": "*_manifest_*.xml",
"regex": ".*",
"xmlAttribute": "version",
"xmlElement": "ksdk"
}
}
}
)";

View File

@@ -3,79 +3,87 @@
#pragma once #pragma once
constexpr auto iar_nxp_1064_json = R"({ constexpr auto iar_mimxrt1064_evk_freertos_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1", "compatVersion": "1",
"qulVersion": "2.0.0", "platform": {
"id": "MIMXRT1064-EVK-FREERTOS",
"vendor": "NXP",
"colorDepths": [
16
],
"cmakeEntries": [
{
"label": "MCUXpresso IDE",
"type": "path",
"cmakeVar": "MCUXPRESSO_IDE_PATH",
"envVar": "MCUXpressoIDE_PATH",
"setting": "MCUXpressoIDE",
"defaultValue": {
"windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*",
"unix": "/usr/local/mcuxpressoide/"
},
"versionDetection": {
"filePattern": "ide/binaries/crt_emu_cm_redlink"
},
"optional": false
}
]
},
"toolchain": {
"id": "iar",
"versions": [
"9.20.4"
],
"compiler": {
"id": "IARToolchain",
"setting": "IARToolchain",
"envVar": "IAR_ARM_COMPILER_DIR",
"label": "IAR ARM Compiler",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"type": "path",
"versionDetection": {
"filePattern": "bin/iccarm",
"executableArgs": "--version",
"regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b"
}
},
"file": {
"id": "IAR_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/iar.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": { "boardSdk": {
"cmakeVar": "QUL_BOARD_SDK_DIR", "cmakeVar": "QUL_BOARD_SDK_DIR",
"envVar": "EVK_MIMXRT1064_SDK_PATH", "envVar": "EVK_MIMXRT1064_SDK_PATH",
"id": "NXP_SDK_DIR",
"label": "Board SDK for MIMXRT1064-EVK", "label": "Board SDK for MIMXRT1064-EVK",
"optional": false, "optional": false,
"setting": "EVK_MIMXRT1064_SDK_PATH", "setting": "EVK_MIMXRT1064_SDK_PATH",
"type": "path", "type": "path",
"versions": [
"2.12.0"
],
"versionDetection": { "versionDetection": {
"filePattern": "*_manifest_*.xml", "filePattern": "*_manifest_*.xml",
"regex": ".*", "regex": ".*",
"xmlAttribute": "version", "xmlAttribute": "version",
"xmlElement": "ksdk" "xmlElement": "ksdk"
}, }
"versions": ["2.11.0"]
}, },
"freeRTOS": { "freeRTOS": {
"cmakeVar": "FREERTOS_DIR", "cmakeVar": "FREERTOS_DIR",
"defaultValue": "%{QUL_BOARD_SDK_DIR}/rtos/freertos/freertos_kernel", "defaultValue": "%{QUL_BOARD_SDK_DIR}/rtos/freertos/freertos_kernel",
"validation": "tasks.c", "validation": "tasks.c",
"envVar": "IMXRT1064_FREERTOS_DIR", "envVar": "IMXRT1064_FREERTOS_DIR",
"id": "NXP_FREERTOS_DIR",
"label": "FreeRTOS SDK for MIMXRT1064-EVK", "label": "FreeRTOS SDK for MIMXRT1064-EVK",
"optional": false, "optional": false,
"setting": "FreeRTOSSourcePackage_IMXRT1064", "setting": "FreeRTOSSourcePackage_IMXRT1064",
"type": "path" "type": "path"
},
"platform": {
"cmakeEntries": [
{
"cmakeVar": "Qul_ROOT",
"label": "Qt for MCUs SDK",
"id": "Qul_DIR",
"optional": false,
"type": "path"
},
{
"cmakeVar": "MCUXPRESSO_IDE_PATH",
"defaultValue": {
"unix": "/usr/local/mcuxpressoide/",
"windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*"
}
}
],
"colorDepths": [16],
"environmentEntries": [],
"id": "MIMXRT1064-EVK-FREERTOS",
"pathEntries": [],
"vendor": "NXP"
},
"toolchain": {
"id": "iar",
"versions": ["8.50.9"],
"compiler": {
"id": "IAR_DIR",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"setting": "IARToolchain",
"envVar": "IAR_ARM_COMPILER_DIR",
"label": "IAR ARM Compiler",
"optional": false,
"type": "path"
},
"file": {
"id": "IAR_CMAKE_TOOLCHAIN_FILE",
"label": "CMake Toolchain File",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "/opt/qtformcu/2.2//lib/cmake/Qul/toolchain/iar.cmake",
"visible": false,
"optional": false
}
} }
})"; }
)";

View File

@@ -0,0 +1,87 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto iar_mimxrt1170_evk_freertos_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "MIMXRT1170-EVK-FREERTOS",
"vendor": "NXP",
"colorDepths": [
32
],
"cmakeEntries": [
{
"label": "MCUXpresso IDE",
"type": "path",
"cmakeVar": "MCUXPRESSO_IDE_PATH",
"envVar": "MCUXpressoIDE_PATH",
"setting": "MCUXpressoIDE",
"defaultValue": {
"windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*",
"unix": "/usr/local/mcuxpressoide/"
},
"versionDetection": {
"filePattern": "ide/binaries/crt_emu_cm_redlink"
},
"optional": false
}
]
},
"toolchain": {
"id": "iar",
"versions": [
"9.20.4"
],
"compiler": {
"id": "IARToolchain",
"setting": "IARToolchain",
"envVar": "IAR_ARM_COMPILER_DIR",
"label": "IAR ARM Compiler",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"type": "path",
"versionDetection": {
"filePattern": "bin/iccarm",
"executableArgs": "--version",
"regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b"
}
},
"file": {
"id": "IAR_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/iar.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"cmakeVar": "QUL_BOARD_SDK_DIR",
"envVar": "EVK_MIMXRT1170_SDK_PATH",
"versions": [
"2.12.0"
],
"label": "Board SDK for MIMXRT1170-EVK",
"type": "path",
"setting": "EVK_MIMXRT1170_SDK_PATH",
"versionDetection": {
"filePattern": "*_manifest_*.xml",
"regex": ".*",
"xmlAttribute": "version",
"xmlElement": "ksdk"
}
},
"freeRTOS": {
"cmakeVar": "FREERTOS_DIR",
"envVar": "EVK_MIMXRT1170_FREERTOS_PATH",
"label": "FreeRTOS SDK for MIMXRT1170-EVK",
"defaultValue": "%{QUL_BOARD_SDK_DIR}/rtos/freertos/freertos_kernel",
"validation": "tasks.c",
"type": "path",
"optional": false
}
}
)";

View File

@@ -0,0 +1,75 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto iar_stm32f469i_discovery_baremetal_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "STM32F469I-DISCOVERY-BAREMETAL",
"vendor": "ST",
"colorDepths": [
24
],
"cmakeEntries": [
{
"id": "STM32CubeProgrammer_PATH",
"label": "STM32CubeProgrammer",
"type": "path",
"defaultValue": {
"windows": "%{Env:PROGRAMSANDFILES}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/",
"unix": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/"
},
"optional": false
}
]
},
"toolchain": {
"id": "iar",
"versions": [
"9.20.4"
],
"compiler": {
"id": "IARToolchain",
"setting": "IARToolchain",
"envVar": "IAR_ARM_COMPILER_DIR",
"label": "IAR ARM Compiler",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"type": "path",
"versionDetection": {
"filePattern": "bin/iccarm",
"executableArgs": "--version",
"regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b"
}
},
"file": {
"id": "IAR_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/iar.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"envVar": "STM32Cube_FW_F4_SDK_PATH",
"setting": "STM32Cube_FW_F4_SDK_PATH",
"versions": [
"1.27.0"
],
"versionDetection": {
"filePattern": "package.xml",
"xmlElement": "PackDescription",
"xmlAttribute": "Release",
"regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b"
},
"id": "ST_SDK_DIR",
"label": "Board SDK for STM32F469I-Discovery",
"cmakeVar": "QUL_BOARD_SDK_DIR",
"type": "path",
"optional": false
}
}
)";

View File

@@ -1,82 +0,0 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto iar_stm32f469i_metal_json = R"({
"qulVersion": "@CMAKE_PROJECT_VERSION@",
"compatVersion": "@COMPATIBILITY_VERSION@",
"platform": {
"id": "STM32F469I-DISCOVERY-BAREMETAL",
"vendor": "ST",
"colorDepths": [
24
],
"pathEntries": [
{
"id": "STM32CubeProgrammer_PATH",
"label": "STM32CubeProgrammer",
"type": "path",
"defaultValue": {
"windows": "%{Env:PROGRAMSANDFILES}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/",
"unix": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/"
},
"optional": false
}
],
"environmentEntries": [],
"cmakeEntries": [
{
"id": "Qul_DIR",
"label": "Qt for MCUs SDK",
"type": "path",
"cmakeVar": "Qul_ROOT",
"optional": false
}
]
},
"toolchain": {
"id": "iar",
"versions": [
"8.50.9"
],
"compiler": {
"id": "IARToolchain",
"setting": "IARToolchain",
"envVar": "IAR_ARM_COMPILER_DIR",
"label": "IAR ARM Compiler",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"type": "path",
"versionDetection" : {
"filePattern": "bin/iccarm",
"executableArgs": "--version",
"regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b"
}
},
"file": {
"id": "IAR_CMAKE_TOOLCHAIN_FILE",
"label": "CMake Toolchain File",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "/opt/qtformcu/2.2//lib/cmake/Qul/toolchain/iar.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"envVar": "STM32Cube_FW_F4_SDK_PATH",
"setting": "STM32Cube_FW_F4_SDK_PATH",
"versions": [ "1.25.0" ],
"versionDetection" : {
"filePattern": "package.xml",
"xmlElement": "PackDescription",
"xmlAttribute": "Release",
"regex": "\b(\d+\.\d+\.\d+)\b"
},
"id": "ST_SDK_DIR",
"label": "Board SDK for STM32F469I-Discovery",
"cmakeVar": "QUL_BOARD_SDK_DIR",
"type": "path",
"optional": false
}
})";

View File

@@ -0,0 +1,75 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto iar_stm32f769i_discovery_baremetal_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "STM32F769I-DISCOVERY-BAREMETAL",
"vendor": "ST",
"colorDepths": [
32
],
"cmakeEntries": [
{
"id": "STM32CubeProgrammer_PATH",
"label": "STM32CubeProgrammer",
"type": "path",
"setting": "Stm32CubeProgrammer",
"defaultValue": {
"windows": "%{Env:PROGRAMSANDFILES}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/",
"unix": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/"
},
"optional": false
}
]
},
"toolchain": {
"id": "iar",
"versions": [
"9.20.4"
],
"compiler": {
"id": "IARToolchain",
"setting": "IARToolchain",
"envVar": "IAR_ARM_COMPILER_DIR",
"label": "IAR ARM Compiler",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"type": "path",
"versionDetection": {
"filePattern": "bin/iccarm",
"executableArgs": "--version",
"regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b"
}
},
"file": {
"id": "IAR_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/iar.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"envVar": "STM32Cube_FW_F7_SDK_PATH",
"setting": "STM32Cube_FW_F7_SDK_PATH",
"versions": [
"1.17.0"
],
"versionDetection": {
"filePattern": "package.xml",
"xmlElement": "PackDescription",
"xmlAttribute": "Release",
"regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b"
},
"label": "Board SDK for STM32F769I-Discovery",
"cmakeVar": "QUL_BOARD_SDK_DIR",
"type": "path",
"optional": false
}
}
)";

View File

@@ -0,0 +1,85 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto iar_stm32f769i_discovery_freertos_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "STM32F769I-DISCOVERY-FREERTOS",
"vendor": "ST",
"colorDepths": [
32
],
"cmakeEntries": [
{
"id": "STM32CubeProgrammer_PATH",
"label": "STM32CubeProgrammer",
"type": "path",
"setting": "Stm32CubeProgrammer",
"defaultValue": {
"windows": "%{Env:PROGRAMSANDFILES}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/",
"unix": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/"
},
"optional": false
}
]
},
"toolchain": {
"id": "iar",
"versions": [
"9.20.4"
],
"compiler": {
"id": "IARToolchain",
"setting": "IARToolchain",
"envVar": "IAR_ARM_COMPILER_DIR",
"label": "IAR ARM Compiler",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"type": "path",
"versionDetection": {
"filePattern": "bin/iccarm",
"executableArgs": "--version",
"regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b"
}
},
"file": {
"id": "IAR_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/iar.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"envVar": "STM32Cube_FW_F7_SDK_PATH",
"setting": "STM32Cube_FW_F7_SDK_PATH",
"versions": [
"1.17.0"
],
"versionDetection": {
"filePattern": "package.xml",
"xmlElement": "PackDescription",
"xmlAttribute": "Release",
"regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b"
},
"label": "Board SDK for STM32F769I-Discovery",
"cmakeVar": "QUL_BOARD_SDK_DIR",
"type": "path",
"optional": false
},
"freeRTOS": {
"envVar": "STM32F7_FREERTOS_DIR",
"label": "FreeRTOS SDK for STM32F769I-Discovery",
"cmakeVar": "FREERTOS_DIR",
"defaultValue": "%{QUL_BOARD_SDK_DIR}/Middlewares/Third_Party/FreeRTOS/Source",
"validation": "tasks.c",
"type": "path",
"setting": "FreeRTOSSourcePackage_STM32F7",
"optional": false
}
}
)";

View File

@@ -0,0 +1,76 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto iar_stm32h750b_discovery_baremetal_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "STM32H750B-DISCOVERY-BAREMETAL",
"vendor": "ST",
"colorDepths": [
32
],
"cmakeEntries": [
{
"id": "STM32CubeProgrammer_PATH",
"label": "STM32CubeProgrammer",
"type": "path",
"setting": "Stm32CubeProgrammer",
"defaultValue": {
"windows": "%{Env:PROGRAMSANDFILES}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/",
"unix": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/"
},
"optional": false
}
]
},
"toolchain": {
"id": "iar",
"versions": [
"9.20.4"
],
"compiler": {
"id": "IARToolchain",
"setting": "IARToolchain",
"envVar": "IAR_ARM_COMPILER_DIR",
"label": "IAR ARM Compiler",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"type": "path",
"versionDetection": {
"filePattern": "bin/iccarm",
"executableArgs": "--version",
"regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b"
}
},
"file": {
"id": "IAR_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/iar.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"envVar": "STM32Cube_FW_H7_SDK_PATH",
"setting": "STM32Cube_FW_H7_SDK_PATH",
"versions": [
"1.10.0"
],
"versionDetection": {
"filePattern": "package.xml",
"xmlElement": "PackDescription",
"xmlAttribute": "Release",
"regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b"
},
"id": "ST_SDK_DIR",
"label": "Board SDK for STM32H750B-Discovery",
"cmakeVar": "QUL_BOARD_SDK_DIR",
"type": "path",
"optional": false
}
}
)";

View File

@@ -0,0 +1,65 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#pragma once
constexpr auto iar_tviic2d6m_baremetal_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "TVIIC2D6M-BAREMETAL",
"vendor": "CYPRESS",
"colorDepths": [
32
],
"cmakeEntries": [
{
"id": "INFINEON_AUTO_FLASH_UTILITY_DIR",
"label": "Cypress Auto Flash Utility",
"type": "path",
"cmakeVar": "INFINEON_AUTO_FLASH_UTILITY_DIR",
"optional": false
}
]
},
"toolchain": {
"id": "iar",
"versions": [
"8.22.3"
],
"compiler": {
"id": "IARToolchain",
"setting": "IARToolchain",
"envVar": "IAR_ARM_COMPILER_DIR",
"label": "IAR ARM Compiler",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"type": "path",
"versionDetection": {
"filePattern": "bin/iccarm",
"executableArgs": "--version",
"regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b"
}
},
"file": {
"id": "IAR_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/iar.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"envVar": "TVII_GRAPHICS_DRIVER_DIR",
"versions": [
"V1e.1.0"
],
"id": "TVII_GRAPHICS_DRIVER_DIR",
"label": "Graphics Driver for Traveo II Cluster Series",
"cmakeVar": "QUL_BOARD_SDK_DIR",
"type": "path",
"optional": false
}
}
)";

View File

@@ -3,43 +3,41 @@
#pragma once #pragma once
constexpr auto msvc_desktop_json = R"({ constexpr auto msvc_desktop_json = R"(
"qulVersion": "@CMAKE_PROJECT_VERSION@", {
"compatVersion": "@COMPATIBILITY_VERSION@", "qulVersion": "2.3.0",
"platform": { "compatVersion": "1",
"id": "Qt", "platform": {
"platformName": "Desktop", "id": "Qt",
"vendor": "Qt", "platformName": "Desktop",
"colorDepths": [ "vendor": "Qt",
32 "colorDepths": [
], 32
"pathEntries": [ ]
], },
"environmentEntries": [ "toolchain": {
], "id": "msvc",
"cmakeEntries": [ "versions": [
{ "19.20",
"envVar": "Qul_DIR", "19.21",
"label": "Qt for MCUs SDK", "19.22",
"type": "path", "19.23",
"cmakeVar": "Qul_ROOT", "19.24",
"optional": false "19.25",
} "19.26",
] "19.27",
}, "19.28",
"toolchain": { "19.29"
"id": "msvc", ],
"versions": [ "compiler": {
"19.20","19.21","19.22","19.23","19.24", "label": "MSVC Toolchain",
"19.25","19.26","19.27","19.28","19.29" "defaultValue": "%{Env:MSVC_COMPILER_DIR}",
], "versionDetection": {
"compiler": { "filePattern": "cl.exe",
"defaultValue": "%{Env:MSVC_COMPILER_DIR}", "executableArgs": "--version",
"versionDetection" : { "regex": "\\b(\\d+\\.\\d+)\\.\\d+\\b"
"filePattern": "cl.exe", }
"executableArgs": "--version",
"regex": "\\b(\\d+\\.\\d+)\\.\\d+\\b"
} }
} }
} }
})"; )";

View File

@@ -3,15 +3,18 @@
#include "unittest.h" #include "unittest.h"
#include "armgcc_nxp_1050_json.h" #include "armgcc_ek_ra6m3g_baremetal_json.h"
#include "armgcc_nxp_1064_json.h" #include "armgcc_mimxrt1050_evk_freertos_json.h"
#include "armgcc_nxp_mimxrt1170_evk_freertos_json.h" #include "armgcc_mimxrt1064_evk_freertos_json.h"
#include "armgcc_stm32f769i_freertos_json.h" #include "armgcc_mimxrt1170_evk_freertos_json.h"
#include "armgcc_stm32h750b_metal_json.h" #include "armgcc_stm32f769i_discovery_freertos_json.h"
#include "armgcc_stm32h750b_discovery_baremetal_json.h"
#include "errors_json.h"
#include "gcc_desktop_json.h" #include "gcc_desktop_json.h"
#include "ghs_rh850_d1m1a_baremetal_json.h" #include "ghs_rh850_d1m1a_baremetal_json.h"
#include "iar_nxp_1064_json.h" #include "iar_mimxrt1064_evk_freertos_json.h"
#include "iar_stm32f469i_metal_json.h" #include "iar_mimxrt1170_evk_freertos_json.h"
#include "iar_stm32f469i_discovery_baremetal_json.h"
#include "msvc_desktop_json.h" #include "msvc_desktop_json.h"
#include "mcuhelpers.h" #include "mcuhelpers.h"
@@ -51,6 +54,7 @@
namespace McuSupport::Internal::Test { namespace McuSupport::Internal::Test {
using namespace Utils; using namespace Utils;
using Legacy::Constants::BOARD_SDK_CMAKE_VAR; using Legacy::Constants::BOARD_SDK_CMAKE_VAR;
using Legacy::Constants::QT_FOR_MCUS_SDK_PACKAGE_VALIDATION_PATH; using Legacy::Constants::QT_FOR_MCUS_SDK_PACKAGE_VALIDATION_PATH;
using Legacy::Constants::QUL_CMAKE_VAR; using Legacy::Constants::QUL_CMAKE_VAR;
@@ -62,7 +66,6 @@ using Legacy::Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE;
using CMakeProjectManager::CMakeConfigItem; using CMakeProjectManager::CMakeConfigItem;
using CMakeProjectManager::CMakeConfigurationKitAspect; using CMakeProjectManager::CMakeConfigurationKitAspect;
using ProjectExplorer::EnvironmentKitAspect;
using ProjectExplorer::Kit; using ProjectExplorer::Kit;
using ProjectExplorer::KitManager; using ProjectExplorer::KitManager;
using ProjectExplorer::ToolChain; using ProjectExplorer::ToolChain;
@@ -80,15 +83,11 @@ const char armGccDirectorySetting[]{"GNUArmEmbeddedToolchain"};
const char armGccEnvVar[]{"ARMGCC_DIR"}; const char armGccEnvVar[]{"ARMGCC_DIR"};
const char armGccLabel[]{"GNU Arm Embedded Toolchain"}; const char armGccLabel[]{"GNU Arm Embedded Toolchain"};
const char armGccSuffix[]{"bin/arm-none-eabi-g++"}; const char armGccSuffix[]{"bin/arm-none-eabi-g++"};
const char armGccToolchainFilePath[]{"/opt/toolchain/armgcc.cmake"}; const char armGccToolchainFilePath[]{"/opt/qtformcu/2.2/lib/cmake/Qul/toolchain/armgcc.cmake"};
const char armGccToolchainFileDefaultPath[]{ const char armGccToolchainFileUnexpandedPath[]{"%{Qul_ROOT}/lib/cmake/Qul/toolchain/armgcc.cmake"};
"/opt/qtformcu/2.2/lib/cmake/Qul/toolchain/armgcc.cmake"}; const char armGccVersion[]{"10.3.1"};
const char armGccToolchainFilePathWithVariable[]{
"%{Qul_ROOT}/lib/cmake/Qul/toolchain/armgcc.cmake"};
const char armGccVersion[]{"9.3.1"};
const char armGccNewVersion[]{"10.3.1"};
const char msvcVersion[]{"14.29"}; const char msvcVersion[]{"14.29"};
const char boardSdkVersion[]{"2.11.0"}; const char boardSdkVersion[]{"2.12.0"};
const QString boardSdkCmakeVar{Legacy::Constants::BOARD_SDK_CMAKE_VAR}; const QString boardSdkCmakeVar{Legacy::Constants::BOARD_SDK_CMAKE_VAR};
const char boardSdkDir[]{"/opt/Qul/2.3.0/boardDir/"}; const char boardSdkDir[]{"/opt/Qul/2.3.0/boardDir/"};
const char cmakeToolchainLabel[]{"CMake Toolchain File"}; const char cmakeToolchainLabel[]{"CMake Toolchain File"};
@@ -101,9 +100,8 @@ const char freeRtosDetectionPath[]{"tasks.c"};
const char freeRtosNxpPathSuffix[]{"rtos/freertos/freertos_kernel"}; const char freeRtosNxpPathSuffix[]{"rtos/freertos/freertos_kernel"};
const char freeRtosStmPathSuffix[]{"/Middlewares/Third_Party/FreeRTOS/Source"}; const char freeRtosStmPathSuffix[]{"/Middlewares/Third_Party/FreeRTOS/Source"};
const char freeRtosSetting[]{"Freertos"}; const char freeRtosSetting[]{"Freertos"};
const char greenhillToolchainFilePath[]{"/opt/toolchain/ghs.cmake"}; const char greenhillToolchainFilePath[]{"/opt/qtformcu/2.2/lib/cmake/Qul/toolchain/ghs.cmake"};
const char greenhillToolchainFileDefaultPath[]{ const char greenhillToolchainFileUnexpandedPath[]{"%{Qul_ROOT}/lib/cmake/Qul/toolchain/ghs.cmake"};
"/opt/qtformcu/2.2/lib/cmake/Qul/toolchain/ghs.cmake"};
const char greenhillCompilerDir[]{"/abs/ghs"}; const char greenhillCompilerDir[]{"/abs/ghs"};
const char greenhillSetting[]{"GHSToolchain"}; const char greenhillSetting[]{"GHSToolchain"};
const QStringList greenhillVersions{{"2018.1.5"}}; const QStringList greenhillVersions{{"2018.1.5"}};
@@ -111,10 +109,10 @@ const char iarDir[]{"/opt/iar/compiler"};
const char iarEnvVar[]{"IAR_ARM_COMPILER_DIR"}; const char iarEnvVar[]{"IAR_ARM_COMPILER_DIR"};
const char iarLabel[]{"IAR ARM Compiler"}; const char iarLabel[]{"IAR ARM Compiler"};
const char iarSetting[]{"IARToolchain"}; const char iarSetting[]{"IARToolchain"};
const char iarToolchainFilePath[]{"/opt/toolchain/iar.cmake"}; const char iarToolchainFilePath[]{"/opt/qtformcu/2.2/lib/cmake/Qul/toolchain/iar.cmake"};
const char iarToolchainFileDefaultPath[]{"/opt/qtformcu/2.2/lib/cmake/Qul/toolchain/iar.cmake"}; const char iarToolchainFileUnexpandedPath[]{"%{Qul_ROOT}/lib/cmake/Qul/toolchain/iar.cmake"};
const char iarVersionDetectionRegex[]{R"(\bV(\d+\.\d+\.\d+)\.\d+\b)"}; const char iarVersionDetectionRegex[]{R"(\bV(\d+\.\d+\.\d+)\.\d+\b)"};
const QStringList iarVersions{{"8.50.9"}}; const QStringList iarVersions{{"9.20.4"}};
const char iar[]{"iar"}; const char iar[]{"iar"};
const char id[]{"target_id"}; const char id[]{"target_id"};
const char name[]{"target_name"}; const char name[]{"target_name"};
@@ -136,17 +134,17 @@ const QString settingsPrefix = QLatin1String(Constants::SETTINGS_GROUP) + '/'
const QString unsupportedToolchainFilePath = QString{qtForMcuSdkPath} const QString unsupportedToolchainFilePath = QString{qtForMcuSdkPath}
+ "/lib/cmake/Qul/toolchain/unsupported.cmake"; + "/lib/cmake/Qul/toolchain/unsupported.cmake";
const QStringList jsonFiles{QString::fromUtf8(armgcc_nxp_1050_json), const QStringList jsonFiles{QString::fromUtf8(armgcc_mimxrt1050_evk_freertos_json),
QString::fromUtf8(iar_nxp_1064_json)}; QString::fromUtf8(iar_mimxrt1064_evk_freertos_json)};
const bool runLegacy{true}; const bool runLegacy{true};
const int colorDepth{32}; const int colorDepth{32};
const PackageDescription const PackageDescription
qtForMCUsSDKDescription{Legacy::Constants::QUL_LABEL, qtForMCUsSDKDescription{QUL_LABEL,
QUL_ENV_VAR, QUL_ENV_VAR,
QUL_CMAKE_VAR, QUL_CMAKE_VAR,
Legacy::Constants::QUL_LABEL, {},
Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK, Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK,
qtForMcuSdkPath, qtForMcuSdkPath,
Legacy::Constants::QT_FOR_MCUS_SDK_PACKAGE_VALIDATION_PATH, Legacy::Constants::QT_FOR_MCUS_SDK_PACKAGE_VALIDATION_PATH,
@@ -234,6 +232,7 @@ void verifyMsvcToolchain(const McuToolChainPackagePtr &msvcPackage, const QStrin
void verifyTargetToolchains(const Targets &targets, void verifyTargetToolchains(const Targets &targets,
const QString &toolchainFilePath, const QString &toolchainFilePath,
const QString &toolchainFileDefaultPath,
const QString &compilerPath, const QString &compilerPath,
const QString &compilerSetting, const QString &compilerSetting,
const QStringList &versions) const QStringList &versions)
@@ -246,7 +245,7 @@ void verifyTargetToolchains(const Targets &targets,
QCOMPARE(toolchainFile->cmakeVariableName(), Legacy::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);
QCOMPARE(toolchainFile->defaultPath().toString(), toolchainFilePath); QCOMPARE(toolchainFile->defaultPath().toString(), toolchainFileDefaultPath);
const auto toolchainCompiler{target->toolChainPackage()}; const auto toolchainCompiler{target->toolChainPackage()};
QVERIFY(toolchainCompiler); QVERIFY(toolchainCompiler);
@@ -283,7 +282,27 @@ void verifyFreeRtosPackage(const McuPackagePtr &freeRtos,
QCOMPARE(freeRtos->settingsKey(), expectedSettingsKey); QCOMPARE(freeRtos->settingsKey(), expectedSettingsKey);
QCOMPARE(freeRtos->path().cleanPath().toString(), freeRtosPath); QCOMPARE(freeRtos->path().cleanPath().toString(), freeRtosPath);
QCOMPARE(freeRtos->detectionPath().cleanPath().toString(), freeRtosDetectionPath); QCOMPARE(freeRtos->detectionPath().cleanPath().toString(), freeRtosDetectionPath);
QVERIFY(freeRtos->path().toString().startsWith(boardSdkDir.cleanPath().toString())); QVERIFY(freeRtos->path().toUserOutput().startsWith(boardSdkDir.cleanPath().toUserOutput()));
}
void verifyPackage(const McuPackagePtr &package,
const QString &path,
const QString &defaultPath,
const QString &setting,
const QString &cmakeVar,
const QString &envVar,
const QString &label,
const QString &detectionPath,
const QStringList &versions)
{
QVERIFY(package);
QCOMPARE(package->defaultPath().toString(), defaultPath);
QCOMPARE(package->path().toString(), path);
QCOMPARE(package->cmakeVariableName(), cmakeVar);
QCOMPARE(package->environmentVariableName(), envVar);
QCOMPARE(package->label(), label);
QCOMPARE(package->settingsKey(), setting);
QCOMPARE(package->versions(), versions);
} }
McuSupportTest::McuSupportTest() McuSupportTest::McuSupportTest()
@@ -354,12 +373,15 @@ void McuSupportTest::initTestCase()
EXPECT_CALL(*freeRtosPackage, isAddToSystemPath()).WillRepeatedly(Return(true)); EXPECT_CALL(*freeRtosPackage, isAddToSystemPath()).WillRepeatedly(Return(true));
EXPECT_CALL(*freeRtosPackage, detectionPath()).WillRepeatedly(Return(FilePath{})); EXPECT_CALL(*freeRtosPackage, detectionPath()).WillRepeatedly(Return(FilePath{}));
EXPECT_CALL(*sdkPackage, environmentVariableName()).WillRepeatedly(Return(QString{QUL_ENV_VAR})); ON_CALL(*sdkPackage, label()).WillByDefault(Return(QString{QUL_LABEL}));
EXPECT_CALL(*sdkPackage, cmakeVariableName()).WillRepeatedly(Return(QString{QUL_CMAKE_VAR})); ON_CALL(*sdkPackage, settingsKey())
EXPECT_CALL(*sdkPackage, isValidStatus()).WillRepeatedly(Return(true)); .WillByDefault(Return(QString{Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK}));
EXPECT_CALL(*sdkPackage, path()).WillRepeatedly(Return(FilePath::fromUserInput(qtForMcuSdkPath))); ON_CALL(*sdkPackage, environmentVariableName()).WillByDefault(Return(QString{QUL_ENV_VAR}));
EXPECT_CALL(*sdkPackage, isAddToSystemPath()).WillRepeatedly(Return(true)); ON_CALL(*sdkPackage, cmakeVariableName()).WillByDefault(Return(QString{QUL_CMAKE_VAR}));
EXPECT_CALL(*sdkPackage, detectionPath()).WillRepeatedly(Return(FilePath{})); ON_CALL(*sdkPackage, isValidStatus()).WillByDefault(Return(true));
ON_CALL(*sdkPackage, path()).WillByDefault(Return(FilePath::fromUserInput(qtForMcuSdkPath)));
ON_CALL(*sdkPackage, isAddToSystemPath()).WillByDefault(Return(true));
ON_CALL(*sdkPackage, detectionPath()).WillByDefault(Return(FilePath{}));
EXPECT_CALL(*armGccToolchainFilePackage, environmentVariableName()) EXPECT_CALL(*armGccToolchainFilePackage, environmentVariableName())
.WillRepeatedly(Return(QString{QString{}})); .WillRepeatedly(Return(QString{QString{}}));
@@ -391,14 +413,14 @@ void McuSupportTest::cleanup()
void McuSupportTest::test_parseBasicInfoFromJson() void McuSupportTest::test_parseBasicInfoFromJson()
{ {
const auto description = parseDescriptionJson(iar_nxp_1064_json); const auto description = parseDescriptionJson(iar_mimxrt1064_evk_freertos_json);
QVERIFY(!description.freeRTOS.envVar.isEmpty()); QVERIFY(!description.freeRTOS.envVar.isEmpty());
} }
void McuSupportTest::test_parseCmakeEntries() void McuSupportTest::test_parseCmakeEntries()
{ {
const auto description{parseDescriptionJson(iar_nxp_1064_json)}; const auto description{parseDescriptionJson(iar_mimxrt1064_evk_freertos_json)};
auto &freeRtos = description.freeRTOS.package; auto &freeRtos = description.freeRTOS.package;
QCOMPARE(freeRtos.envVar, nxp1064FreeRtosEnvVar); QCOMPARE(freeRtos.envVar, nxp1064FreeRtosEnvVar);
@@ -413,22 +435,25 @@ void McuSupportTest::test_parseToolchainFromJSON_data()
QTest::addColumn<QString>("id"); QTest::addColumn<QString>("id");
//TODO(me): Add ghs nxp 1064 nxp 1070. //TODO(me): Add ghs nxp 1064 nxp 1070.
QTest::newRow("armgcc_nxp_1050_json") << armgcc_nxp_1050_json << armGccEnvVar << armGccLabel QTest::newRow("armgcc_mimxrt1050_evk_freertos_json")
<< armGccToolchainFilePathWithVariable << armGcc; << armgcc_mimxrt1050_evk_freertos_json << armGccEnvVar << armGccLabel
QTest::newRow("armgcc_stm32f769i_freertos_json") << armGccToolchainFileUnexpandedPath << armGcc;
<< armgcc_stm32f769i_freertos_json << armGccEnvVar << armGccLabel QTest::newRow("armgcc_mimxrt1064_evk_freertos_json")
<< armGccToolchainFilePathWithVariable << armGcc; << armgcc_mimxrt1064_evk_freertos_json << armGccEnvVar << armGccLabel
<< armGccToolchainFileUnexpandedPath << armGcc;
QTest::newRow("armgcc_mimxrt1170_evk_freertos_json")
<< armgcc_mimxrt1170_evk_freertos_json << armGccEnvVar << armGccLabel
<< armGccToolchainFileUnexpandedPath << armGcc;
QTest::newRow("armgcc_stm32f769i_discovery_freertos_json")
<< armgcc_stm32f769i_discovery_freertos_json << armGccEnvVar << armGccLabel
<< armGccToolchainFileUnexpandedPath << armGcc;
QTest::newRow("armgcc_stm32h750b_discovery_baremetal_json")
<< armgcc_stm32h750b_discovery_baremetal_json << armGccEnvVar << armGccLabel
<< armGccToolchainFileUnexpandedPath << armGcc;
QTest::newRow("armgcc_stm32h750b_metal_json") QTest::newRow("iar_stm32f469i_discovery_baremetal_json")
<< armgcc_stm32h750b_metal_json << armGccEnvVar << armGccLabel << iar_stm32f469i_discovery_baremetal_json << iarEnvVar << iarLabel
<< armGccToolchainFilePathWithVariable << armGcc; << iarToolchainFileUnexpandedPath << iar;
QTest::newRow("armgcc_nxp_mimxrt1170_evk_freertos_json")
<< armgcc_nxp_mimxrt1170_evk_freertos_json << armGccEnvVar << armGccLabel
<< armGccToolchainFilePathWithVariable << armGcc;
QTest::newRow("iar_stm32f469i_metal_json")
<< iar_stm32f469i_metal_json << iarEnvVar << iarLabel << iarToolchainFileDefaultPath << iar;
} }
void McuSupportTest::test_parseToolchainFromJSON() void McuSupportTest::test_parseToolchainFromJSON()
@@ -447,7 +472,7 @@ void McuSupportTest::test_parseToolchainFromJSON()
QCOMPARE(compilerPackage.envVar, environmentVariable); QCOMPARE(compilerPackage.envVar, environmentVariable);
const PackageDescription &toolchainFilePackage{description.toolchain.file}; const PackageDescription &toolchainFilePackage{description.toolchain.file};
QCOMPARE(toolchainFilePackage.label, cmakeToolchainLabel); QCOMPARE(toolchainFilePackage.label, QString{});
QCOMPARE(toolchainFilePackage.envVar, QString{}); QCOMPARE(toolchainFilePackage.envVar, QString{});
QCOMPARE(toolchainFilePackage.cmakeVar, Legacy::Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE); QCOMPARE(toolchainFilePackage.cmakeVar, Legacy::Constants::TOOLCHAIN_FILE_CMAKE_VARIABLE);
QCOMPARE(toolchainFilePackage.defaultPath.cleanPath().toString(), toolchainFileDefaultPath); QCOMPARE(toolchainFilePackage.defaultPath.cleanPath().toString(), toolchainFileDefaultPath);
@@ -462,7 +487,7 @@ void McuSupportTest::test_legacy_createIarToolchain()
void McuSupportTest::test_createIarToolchain() void McuSupportTest::test_createIarToolchain()
{ {
const auto description = parseDescriptionJson(iar_stm32f469i_metal_json); const auto description = parseDescriptionJson(iar_stm32f469i_discovery_baremetal_json);
McuToolChainPackagePtr iarToolchainPackage{targetFactory.createToolchain(description.toolchain)}; McuToolChainPackagePtr iarToolchainPackage{targetFactory.createToolchain(description.toolchain)};
verifyIarToolchain(iarToolchainPackage); verifyIarToolchain(iarToolchainPackage);
@@ -471,8 +496,8 @@ void McuSupportTest::test_createIarToolchain()
void McuSupportTest::test_legacy_createDesktopGccToolchain() void McuSupportTest::test_legacy_createDesktopGccToolchain()
{ {
McuToolChainPackagePtr gccPackage = Legacy::createGccToolChainPackage(settingsMockPtr, McuToolChainPackagePtr gccPackage = Legacy::createGccToolChainPackage(settingsMockPtr,
{armGccNewVersion}); {armGccVersion});
verifyGccToolchain(gccPackage, {armGccNewVersion}); verifyGccToolchain(gccPackage, {armGccVersion});
} }
void McuSupportTest::test_createDesktopGccToolchain() void McuSupportTest::test_createDesktopGccToolchain()
@@ -510,14 +535,13 @@ void McuSupportTest::test_legacy_createArmGccToolchain()
void McuSupportTest::test_createArmGccToolchain_data() void McuSupportTest::test_createArmGccToolchain_data()
{ {
QStringList versions{armGccVersion, armGccNewVersion};
QTest::addColumn<QString>("json"); QTest::addColumn<QString>("json");
QTest::newRow("armgcc_nxp_1050_json") << armgcc_nxp_1050_json; QTest::newRow("armgcc_mimxrt1050_evk_freertos_json") << armgcc_mimxrt1050_evk_freertos_json;
QTest::newRow("armgcc_stm32f769i_freertos_json") << armgcc_stm32f769i_freertos_json; QTest::newRow("armgcc_stm32f769i_discovery_freertos_json")
QTest::newRow("armgcc_stm32h750b_metal_json") << armgcc_stm32h750b_metal_json; << armgcc_stm32f769i_discovery_freertos_json;
QTest::newRow("armgcc_nxp_mimxrt1170_evk_freertos_json") QTest::newRow("armgcc_stm32h750b_discovery_baremetal_json")
<< armgcc_nxp_mimxrt1170_evk_freertos_json; << armgcc_stm32h750b_discovery_baremetal_json;
QTest::newRow("armgcc_mimxrt1170_evk_freertos_json") << armgcc_mimxrt1170_evk_freertos_json;
} }
void McuSupportTest::test_createArmGccToolchain() void McuSupportTest::test_createArmGccToolchain()
@@ -534,11 +558,13 @@ void McuSupportTest::test_mapParsedToolchainIdToCorrespondingType_data()
QTest::addColumn<McuTargetDescription>("description"); QTest::addColumn<McuTargetDescription>("description");
QTest::addColumn<McuToolChainPackage::ToolChainType>("toolchainType"); QTest::addColumn<McuToolChainPackage::ToolChainType>("toolchainType");
QTest::newRow("armgcc_stm32h750b") << parseDescriptionJson(armgcc_stm32h750b_metal_json) QTest::newRow("armgcc_stm32h750b_discovery_baremetal_json")
<< McuToolChainPackage::ToolChainType::ArmGcc; << parseDescriptionJson(armgcc_stm32h750b_discovery_baremetal_json)
QTest::newRow("iar_nxp1064") << parseDescriptionJson(iar_nxp_1064_json) << McuToolChainPackage::ToolChainType::ArmGcc;
<< McuToolChainPackage::ToolChainType::IAR; QTest::newRow("iar_mimxrt1064_evk_freertos_json")
QTest::newRow("iar_stm32f469i") << parseDescriptionJson(iar_stm32f469i_metal_json) << parseDescriptionJson(iar_mimxrt1064_evk_freertos_json)
<< McuToolChainPackage::ToolChainType::IAR;
QTest::newRow("iar_stm32f469i") << parseDescriptionJson(iar_stm32f469i_discovery_baremetal_json)
<< McuToolChainPackage::ToolChainType::IAR; << McuToolChainPackage::ToolChainType::IAR;
} }
@@ -563,31 +589,31 @@ void McuSupportTest::test_legacy_createPackagesWithCorrespondingSettings_data()
{"RenesasFlashProgrammer"}, {"RenesasFlashProgrammer"},
{"Stm32CubeProgrammer"}}; {"Stm32CubeProgrammer"}};
QTest::newRow("nxp1064") << iar_nxp_1064_json QTest::newRow("iar_mimxrt1064_evk_freertos_json")
<< QSet<QString>{{"EVK_MIMXRT1064_SDK_PATH"}, << iar_mimxrt1064_evk_freertos_json
{QString{ << QSet<QString>{{"EVK_MIMXRT1064_SDK_PATH"},
Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX} {QString{Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(
.append("IMXRT1064")}, "IMXRT1064")},
"IARToolchain"} "IARToolchain"}
.unite(commonSettings); .unite(commonSettings);
QTest::newRow("stm32f469i") << iar_stm32f469i_metal_json QTest::newRow("stm32f469i") << iar_stm32f469i_discovery_baremetal_json
<< QSet<QString>{{"STM32Cube_FW_F4_SDK_PATH"}, "IARToolchain"}.unite( << QSet<QString>{{"STM32Cube_FW_F4_SDK_PATH"}, "IARToolchain"}.unite(
commonSettings); commonSettings);
QTest::newRow("nxp1050") << armgcc_nxp_1050_json QTest::newRow("nxp1050") << armgcc_mimxrt1050_evk_freertos_json
<< QSet<QString>{{"EVKB_IMXRT1050_SDK_PATH"}, << QSet<QString>{{"EVKB_IMXRT1050_SDK_PATH"},
{QString{ {QString{
Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX} Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX}
.append("IMXRT1050")}, .append("IMXRT1050")},
"GNUArmEmbeddedToolchain"} "GNUArmEmbeddedToolchain"}
.unite(commonSettings); .unite(commonSettings);
QTest::newRow("stm32h750b") << armgcc_stm32h750b_metal_json QTest::newRow("armgcc_stm32h750b_discovery_baremetal_json")
<< QSet<QString>{{"STM32Cube_FW_H7_SDK_PATH"}, << armgcc_stm32h750b_discovery_baremetal_json
"GNUArmEmbeddedToolchain"} << QSet<QString>{{"STM32Cube_FW_H7_SDK_PATH"}, "GNUArmEmbeddedToolchain"}.unite(
.unite(commonSettings); commonSettings);
QTest::newRow("stm32f769i") << armgcc_stm32f769i_freertos_json QTest::newRow("armgcc_stm32f769i_discovery_freertos_json")
<< QSet<QString>{{"STM32Cube_FW_F7_SDK_PATH"}, << armgcc_stm32f769i_discovery_freertos_json
"GNUArmEmbeddedToolchain"} << QSet<QString>{{"STM32Cube_FW_F7_SDK_PATH"}, "GNUArmEmbeddedToolchain"}.unite(
.unite(commonSettings); commonSettings);
QTest::newRow("ghs_rh850_d1m1a_baremetal_json") QTest::newRow("ghs_rh850_d1m1a_baremetal_json")
<< ghs_rh850_d1m1a_baremetal_json << QSet<QString>{"GHSToolchain"}.unite(commonSettings); << ghs_rh850_d1m1a_baremetal_json << QSet<QString>{"GHSToolchain"}.unite(commonSettings);
@@ -598,7 +624,7 @@ void McuSupportTest::test_legacy_createPackagesWithCorrespondingSettings()
QFETCH(QString, json); QFETCH(QString, json);
const McuTargetDescription description = parseDescriptionJson(json.toLocal8Bit()); const McuTargetDescription description = parseDescriptionJson(json.toLocal8Bit());
const auto [targets, packages]{ const auto [targets, packages]{
targetsFromDescriptions({description}, settingsMockPtr, qtForMcuSdkPath, runLegacy)}; targetsFromDescriptions({description}, settingsMockPtr, sdkPackagePtr, 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) {
@@ -622,14 +648,15 @@ void McuSupportTest::test_createTargets()
true}; true};
targetDescription.toolchain.id = armGcc; targetDescription.toolchain.id = armGcc;
const auto [targets, packages]{targetFactory.createTargets(targetDescription, qtForMcuSdkPath)}; const auto [targets, packages]{targetFactory.createTargets(targetDescription, sdkPackagePtr)};
QCOMPARE(targets.size(), 1); QCOMPARE(targets.size(), 1);
const McuTargetPtr target{targets.at(0)}; const McuTargetPtr target{targets.at(0)};
QCOMPARE(target->colorDepth(), colorDepth); QCOMPARE(target->colorDepth(), colorDepth);
const auto &tgtPackages{target->packages()}; const auto &tgtPackages{target->packages()};
QCOMPARE(tgtPackages.size(), 5); QCOMPARE(tgtPackages.size(), 5); // qtForMCUs, toolchain file + compiler,
// freertos, board sdk
// target should contain freertos package // target should contain freertos package
QVERIFY(anyOf(tgtPackages, [](const McuPackagePtr &pkg) { QVERIFY(anyOf(tgtPackages, [](const McuPackagePtr &pkg) {
@@ -682,8 +709,8 @@ void McuSupportTest::test_removeRtosSuffixFromEnvironmentVariable_data()
QTest::addColumn<QString>("freeRtosEnvVar"); QTest::addColumn<QString>("freeRtosEnvVar");
QTest::addColumn<QString>("expectedEnvVarWithoutSuffix"); QTest::addColumn<QString>("expectedEnvVarWithoutSuffix");
QTest::newRow("armgcc_nxp_1050_json") << nxp1050FreeRtosEnvVar << nxp1050; QTest::newRow("armgcc_mimxrt1050_evk_freertos_json") << nxp1050FreeRtosEnvVar << nxp1050;
QTest::newRow("iar_nxp_1064_json") << nxp1064FreeRtosEnvVar << nxp1064; QTest::newRow("iar_mimxrt1064_evk_freertos_json") << nxp1064FreeRtosEnvVar << nxp1064;
QTest::newRow("nxp1170") << nxp1170FreeRtosEnvVar << nxp1170; QTest::newRow("nxp1170") << nxp1170FreeRtosEnvVar << nxp1170;
QTest::newRow("stm32f7") << stm32f7FreeRtosEnvVar << stm32f7; QTest::newRow("stm32f7") << stm32f7FreeRtosEnvVar << stm32f7;
} }
@@ -816,32 +843,48 @@ void McuSupportTest::test_legacy_createTargetWithToolchainPackages_data()
{ {
QTest::addColumn<QString>("json"); QTest::addColumn<QString>("json");
QTest::addColumn<QString>("toolchainFilePath"); QTest::addColumn<QString>("toolchainFilePath");
QTest::addColumn<QString>("toolchainFileDefaultPath");
QTest::addColumn<QString>("compilerPath"); QTest::addColumn<QString>("compilerPath");
QTest::addColumn<QString>("compilerSetting"); QTest::addColumn<QString>("compilerSetting");
QTest::addColumn<QStringList>("versions"); QTest::addColumn<QStringList>("versions");
QTest::newRow("nxp1050") << armgcc_nxp_1050_json << armGccToolchainFileDefaultPath << armGccDir QTest::newRow("armgcc_mimxrt1050_evk_freertos_json")
<< armGccDirectorySetting << armgcc_mimxrt1050_evk_freertos_json << armGccToolchainFilePath
<< QStringList{armGccVersion, armGccNewVersion}; << armGccToolchainFileUnexpandedPath << armGccDir << armGccDirectorySetting
QTest::newRow("stm32h750b") << armgcc_stm32h750b_metal_json << armGccToolchainFileDefaultPath << QStringList{armGccVersion};
<< armGccDir << armGccDirectorySetting QTest::newRow("armgcc_mimxrt1064_evk_freertos_json")
<< QStringList{armGccVersion}; << armgcc_mimxrt1064_evk_freertos_json << armGccToolchainFilePath
QTest::newRow("stm32f769i") << armgcc_stm32f769i_freertos_json << armGccToolchainFileDefaultPath << armGccToolchainFileUnexpandedPath << armGccDir << armGccDirectorySetting
<< armGccDir << armGccDirectorySetting << QStringList{armGccVersion};
<< QStringList{armGccVersion, armGccNewVersion}; QTest::newRow("armgcc_mimxrt1170_evk_freertos_json")
QTest::newRow("stm32f469i") << iar_stm32f469i_metal_json << iarToolchainFileDefaultPath << armgcc_mimxrt1170_evk_freertos_json << armGccToolchainFilePath
<< iarDir << iarSetting << iarVersions; << armGccToolchainFileUnexpandedPath << armGccDir << armGccDirectorySetting
QTest::newRow("iar_nxp_1064_json") << QStringList{armGccVersion};
<< iar_nxp_1064_json << iarToolchainFileDefaultPath << iarDir << iarSetting << iarVersions; QTest::newRow("armgcc_stm32h750b_discovery_baremetal_json")
<< armgcc_stm32h750b_discovery_baremetal_json << armGccToolchainFilePath
<< armGccToolchainFileUnexpandedPath << armGccDir << armGccDirectorySetting
<< QStringList{armGccVersion};
QTest::newRow("armgcc_stm32f769i_discovery_freertos_json")
<< armgcc_stm32f769i_discovery_freertos_json << armGccToolchainFilePath
<< armGccToolchainFileUnexpandedPath << armGccDir << armGccDirectorySetting
<< QStringList{armGccVersion};
QTest::newRow("iar_stm32f469i_discovery_baremetal_json")
<< iar_stm32f469i_discovery_baremetal_json << iarToolchainFilePath
<< iarToolchainFileUnexpandedPath << iarDir << iarSetting << iarVersions;
QTest::newRow("iar_mimxrt1064_evk_freertos_json")
<< iar_mimxrt1064_evk_freertos_json << iarToolchainFilePath
<< iarToolchainFileUnexpandedPath << iarDir << iarSetting << iarVersions;
QTest::newRow("ghs_rh850_d1m1a_baremetal_json") QTest::newRow("ghs_rh850_d1m1a_baremetal_json")
<< ghs_rh850_d1m1a_baremetal_json << greenhillToolchainFileDefaultPath << ghs_rh850_d1m1a_baremetal_json << greenhillToolchainFilePath
<< greenhillCompilerDir << greenhillSetting << greenhillVersions; << greenhillToolchainFileUnexpandedPath << greenhillCompilerDir << greenhillSetting
<< greenhillVersions;
} }
void McuSupportTest::test_legacy_createTargetWithToolchainPackages() void McuSupportTest::test_legacy_createTargetWithToolchainPackages()
{ {
QFETCH(QString, json); QFETCH(QString, json);
QFETCH(QString, toolchainFilePath); QFETCH(QString, toolchainFilePath);
QFETCH(QString, toolchainFileDefaultPath);
QFETCH(QString, compilerPath); QFETCH(QString, compilerPath);
QFETCH(QString, compilerSetting); QFETCH(QString, compilerSetting);
QFETCH(QStringList, versions); QFETCH(QStringList, versions);
@@ -855,10 +898,15 @@ void McuSupportTest::test_legacy_createTargetWithToolchainPackages()
.WillRepeatedly(Return(FilePath::fromUserInput(compilerPath))); .WillRepeatedly(Return(FilePath::fromUserInput(compilerPath)));
const auto [targets, packages]{ const auto [targets, packages]{
targetsFromDescriptions({description}, settingsMockPtr, qtForMcuSdkPath, runLegacy)}; targetsFromDescriptions({description}, settingsMockPtr, sdkPackagePtr, runLegacy)};
Q_UNUSED(packages); Q_UNUSED(packages);
verifyTargetToolchains(targets, toolchainFilePath, compilerPath, compilerSetting, versions); verifyTargetToolchains(targets,
toolchainFilePath,
toolchainFilePath,
compilerPath,
compilerSetting,
versions);
} }
void McuSupportTest::test_createTargetWithToolchainPackages_data() void McuSupportTest::test_createTargetWithToolchainPackages_data()
@@ -870,6 +918,7 @@ void McuSupportTest::test_createTargetWithToolchainPackages()
{ {
QFETCH(QString, json); QFETCH(QString, json);
QFETCH(QString, toolchainFilePath); QFETCH(QString, toolchainFilePath);
QFETCH(QString, toolchainFileDefaultPath);
QFETCH(QString, compilerPath); QFETCH(QString, compilerPath);
QFETCH(QString, compilerSetting); QFETCH(QString, compilerSetting);
QFETCH(QStringList, versions); QFETCH(QStringList, versions);
@@ -883,10 +932,29 @@ void McuSupportTest::test_createTargetWithToolchainPackages()
const McuTargetDescription description = parseDescriptionJson(json.toLocal8Bit()); const McuTargetDescription description = parseDescriptionJson(json.toLocal8Bit());
const auto [targets, packages]{ const auto [targets, packages]{
targetsFromDescriptions({description}, settingsMockPtr, qtForMcuSdkPath, !runLegacy)}; targetsFromDescriptions({description}, settingsMockPtr, sdkPackagePtr, !runLegacy)};
Q_UNUSED(packages); Q_UNUSED(packages);
verifyTargetToolchains(targets, toolchainFilePath, compilerPath, compilerSetting, versions); const auto qtForMCUsSDK = findOrDefault(packages, [](const McuPackagePtr &pkg) {
return (pkg->cmakeVariableName() == QUL_CMAKE_VAR);
});
verifyPackage(qtForMCUsSDK,
qtForMcuSdkPath,
{}, // qtForMcuSdkPath
Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK,
QUL_CMAKE_VAR,
QUL_ENV_VAR,
QUL_LABEL,
Legacy::Constants::QT_FOR_MCUS_SDK_PACKAGE_VALIDATION_PATH,
{});
verifyTargetToolchains(targets,
toolchainFilePath,
toolchainFileDefaultPath, // default path is unexpanded.
compilerPath,
compilerSetting,
versions);
} }
void McuSupportTest::test_addToolchainFileInfoToKit() void McuSupportTest::test_addToolchainFileInfoToKit()
@@ -909,20 +977,25 @@ void McuSupportTest::test_legacy_createBoardSdk_data()
QTest::addColumn<QString>("environmentVariable"); QTest::addColumn<QString>("environmentVariable");
QTest::addColumn<QStringList>("versions"); QTest::addColumn<QStringList>("versions");
QTest::newRow("armgcc_nxp_1050_json") QTest::newRow("armgcc_mimxrt1050_evk_freertos_json")
<< armgcc_nxp_1050_json << boardSdkCmakeVar << "EVKB_IMXRT1050_SDK_PATH" << armgcc_mimxrt1050_evk_freertos_json << boardSdkCmakeVar << "EVKB_IMXRT1050_SDK_PATH"
<< QStringList{boardSdkVersion}; << QStringList{boardSdkVersion};
QTest::newRow("armgcc_nxp_1064_json") << armgcc_nxp_1064_json << boardSdkCmakeVar QTest::newRow("armgcc_mimxrt1064_evk_freertos_json")
<< "EVK_MIMXRT1064_SDK_PATH" << QStringList{"2.11.1"}; << armgcc_mimxrt1064_evk_freertos_json << boardSdkCmakeVar << "EVK_MIMXRT1064_SDK_PATH"
QTest::newRow("stm32h750b") << armgcc_stm32h750b_metal_json << boardSdkCmakeVar << QStringList{boardSdkVersion};
<< "STM32Cube_FW_H7_SDK_PATH" << QStringList{"1.5.0"}; QTest::newRow("armgcc_stm32h750b_discovery_baremetal_json")
QTest::newRow("stm32f769i") << armgcc_stm32f769i_freertos_json << boardSdkCmakeVar << armgcc_stm32h750b_discovery_baremetal_json << boardSdkCmakeVar
<< "STM32Cube_FW_F7_SDK_PATH" << QStringList{"1.16.0"}; << "STM32Cube_FW_H7_SDK_PATH" << QStringList{"1.10.0"};
QTest::newRow("stm32f469i") << iar_stm32f469i_metal_json << boardSdkCmakeVar QTest::newRow("armgcc_stm32f769i_discovery_freertos_json")
<< "STM32Cube_FW_F4_SDK_PATH" << QStringList{"1.25.0"}; << armgcc_stm32f769i_discovery_freertos_json << boardSdkCmakeVar
QTest::newRow("nxp1064") << iar_nxp_1064_json << boardSdkCmakeVar << "EVK_MIMXRT1064_SDK_PATH" << "STM32Cube_FW_F7_SDK_PATH" << QStringList{"1.17.0"};
<< QStringList{boardSdkVersion}; QTest::newRow("iar_stm32f469i_discovery_baremetal_json")
<< iar_stm32f469i_discovery_baremetal_json << boardSdkCmakeVar << "STM32Cube_FW_F4_SDK_PATH"
<< QStringList{"1.27.0"};
QTest::newRow("iar_mimxrt1064_evk_freertos_json")
<< iar_mimxrt1064_evk_freertos_json << boardSdkCmakeVar << "EVK_MIMXRT1064_SDK_PATH"
<< QStringList{boardSdkVersion};
QTest::newRow("ghs_rh850_d1m1a_baremetal_json") QTest::newRow("ghs_rh850_d1m1a_baremetal_json")
<< ghs_rh850_d1m1a_baremetal_json << boardSdkCmakeVar << "RGL_DIR" << QStringList{"2.0.0a"}; << ghs_rh850_d1m1a_baremetal_json << boardSdkCmakeVar << "RGL_DIR" << QStringList{"2.0.0a"};
} }
@@ -967,23 +1040,23 @@ void McuSupportTest::test_legacy_createFreeRtosPackage_data()
QTest::addColumn<FilePath>("expectedPath"); QTest::addColumn<FilePath>("expectedPath");
QTest::addColumn<FilePath>("expectedDetectionPath"); QTest::addColumn<FilePath>("expectedDetectionPath");
QTest::newRow("armgcc_nxp_1050_json") QTest::newRow("armgcc_mimxrt1050_evk_freertos_json")
<< armgcc_nxp_1050_json << QStringList{boardSdkVersion} << armgcc_mimxrt1050_evk_freertos_json << QStringList{boardSdkVersion}
<< QString{Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(nxp1050) << QString{Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(nxp1050)
<< FilePath::fromUserInput(boardSdkDir) / freeRtosNxpPathSuffix << FilePath::fromUserInput(boardSdkDir) / freeRtosNxpPathSuffix
<< FilePath::fromUserInput(freeRtosDetectionPath); << FilePath::fromUserInput(freeRtosDetectionPath);
QTest::newRow("armgcc_nxp_1064_json") QTest::newRow("armgcc_mimxrt1064_evk_freertos_json")
<< armgcc_nxp_1064_json << QStringList{boardSdkVersion} << armgcc_mimxrt1064_evk_freertos_json << QStringList{boardSdkVersion}
<< QString{Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(nxp1064) << QString{Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(nxp1064)
<< FilePath::fromUserInput(boardSdkDir) / freeRtosNxpPathSuffix << FilePath::fromUserInput(boardSdkDir) / freeRtosNxpPathSuffix
<< FilePath::fromUserInput(freeRtosDetectionPath); << FilePath::fromUserInput(freeRtosDetectionPath);
QTest::newRow("iar_nxp_1064_json") QTest::newRow("iar_mimxrt1064_evk_freertos_json")
<< iar_nxp_1064_json << QStringList{boardSdkVersion} << iar_mimxrt1064_evk_freertos_json << QStringList{boardSdkVersion}
<< QString{Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(nxp1064) << QString{Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(nxp1064)
<< FilePath::fromUserInput(boardSdkDir) / freeRtosNxpPathSuffix << FilePath::fromUserInput(boardSdkDir) / freeRtosNxpPathSuffix
<< FilePath::fromUserInput(freeRtosDetectionPath); << FilePath::fromUserInput(freeRtosDetectionPath);
QTest::newRow("armgcc_stm32f769i_freertos_json") QTest::newRow("armgcc_stm32f769i_discovery_freertos_json")
<< armgcc_stm32f769i_freertos_json << QStringList{"1.16.0"} << armgcc_stm32f769i_discovery_freertos_json << QStringList{"1.16.0"}
<< QString{Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(stm32f7) << QString{Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(stm32f7)
<< FilePath::fromUserInput(boardSdkDir) / freeRtosStmPathSuffix << FilePath::fromUserInput(boardSdkDir) / freeRtosStmPathSuffix
<< FilePath::fromUserInput(freeRtosDetectionPath); << FilePath::fromUserInput(freeRtosDetectionPath);
@@ -1031,7 +1104,7 @@ void McuSupportTest::test_createFreeRtosPackage()
EXPECT_CALL(*settingsMockPtr, getPath(targetDescription.boardSdk.envVar, _, _)) EXPECT_CALL(*settingsMockPtr, getPath(targetDescription.boardSdk.envVar, _, _))
.WillRepeatedly(Return(FilePath::fromString(boardSdkDir))); .WillRepeatedly(Return(FilePath::fromString(boardSdkDir)));
auto [targets, packages] = targetFactory.createTargets(targetDescription, qtForMcuSdkPath); auto [targets, packages] = targetFactory.createTargets(targetDescription, sdkPackagePtr);
auto freeRtos = findOrDefault(packages, [](const McuPackagePtr &pkg) { auto freeRtos = findOrDefault(packages, [](const McuPackagePtr &pkg) {
return (pkg->cmakeVariableName() == freeRtosCMakeVar); return (pkg->cmakeVariableName() == freeRtosCMakeVar);
@@ -1049,8 +1122,10 @@ void McuSupportTest::test_legacy_doNOTcreateFreeRtosPackageForMetalVariants_data
{ {
QTest::addColumn<QString>("json"); QTest::addColumn<QString>("json");
QTest::newRow("iar_stm32f469i_metal_json") << iar_stm32f469i_metal_json; QTest::newRow("iar_stm32f469i_discovery_baremetal_json")
QTest::newRow("armgcc_stm32h750b_metal_json") << armgcc_stm32h750b_metal_json; << iar_stm32f469i_discovery_baremetal_json;
QTest::newRow("armgcc_stm32h750b_discovery_baremetal_json")
<< armgcc_stm32h750b_discovery_baremetal_json;
QTest::newRow("ghs_rh850_d1m1a_baremetal_json") << ghs_rh850_d1m1a_baremetal_json; QTest::newRow("ghs_rh850_d1m1a_baremetal_json") << ghs_rh850_d1m1a_baremetal_json;
QTest::newRow("gcc_desktop_json") << gcc_desktop_json; QTest::newRow("gcc_desktop_json") << gcc_desktop_json;
} }
@@ -1062,7 +1137,7 @@ void McuSupportTest::test_legacy_doNOTcreateFreeRtosPackageForMetalVariants()
McuTargetDescription targetDescription{parseDescriptionJson(json.toLocal8Bit())}; McuTargetDescription targetDescription{parseDescriptionJson(json.toLocal8Bit())};
QCOMPARE(targetDescription.freeRTOS.package.cmakeVar, ""); QCOMPARE(targetDescription.freeRTOS.package.cmakeVar, "");
auto [targets, packages] = targetFactory.createTargets(targetDescription, qtForMcuSdkPath); auto [targets, packages] = targetFactory.createTargets(targetDescription, sdkPackagePtr);
auto freeRtos = findOrDefault(packages, [](const McuPackagePtr &pkg) { auto freeRtos = findOrDefault(packages, [](const McuPackagePtr &pkg) {
return (pkg->cmakeVariableName() == freeRtosCMakeVar); return (pkg->cmakeVariableName() == freeRtosCMakeVar);
@@ -1088,7 +1163,7 @@ void McuSupportTest::test_legacy_createQtMCUsPackage()
void McuSupportTest::test_legacy_supportMultipleToolchainVersions() void McuSupportTest::test_legacy_supportMultipleToolchainVersions()
{ {
const auto description = parseDescriptionJson(armgcc_stm32f769i_freertos_json); const auto description = parseDescriptionJson(mulitple_toolchain_versions);
QVERIFY(!description.toolchain.versions.empty()); QVERIFY(!description.toolchain.versions.empty());
QCOMPARE(description.toolchain.versions.size(), 2); QCOMPARE(description.toolchain.versions.size(), 2);
@@ -1102,16 +1177,19 @@ void McuSupportTest::test_passExecutableVersionDetectorToToolchainPackage_data()
QTest::addColumn<QString>("versionDetectionPath"); QTest::addColumn<QString>("versionDetectionPath");
QTest::addColumn<QString>("versionDetectionArgs"); QTest::addColumn<QString>("versionDetectionArgs");
QTest::addColumn<QString>("versionRegex"); QTest::addColumn<QString>("versionRegex");
QTest::newRow("armgcc_nxp_1050_json") QTest::newRow("armgcc_mimxrt1050_evk_freertos_json")
<< armgcc_nxp_1050_json << armGccSuffix << version << armGccVersionDetectionRegex; << armgcc_mimxrt1050_evk_freertos_json << armGccSuffix << version
QTest::newRow("armgcc_stm32h750b_metal_json") << armGccVersionDetectionRegex;
<< armgcc_stm32h750b_metal_json << armGccSuffix << version << armGccVersionDetectionRegex; QTest::newRow("armgcc_stm32h750b_discovery_baremetal_json")
QTest::newRow("armgcc_stm32f769i_freertos_json") << armgcc_stm32h750b_discovery_baremetal_json << armGccSuffix << version
<< armgcc_stm32f769i_freertos_json << armGccSuffix << version << armGccVersionDetectionRegex;
QTest::newRow("armgcc_stm32f769i_discovery_freertos_json")
<< armgcc_stm32f769i_discovery_freertos_json << armGccSuffix << version
<< armGccVersionDetectionRegex; << armGccVersionDetectionRegex;
QTest::newRow("iar_stm32f469i_metal_json") << iar_stm32f469i_metal_json << QString{"bin/iccarm"} QTest::newRow("iar_stm32f469i_discovery_baremetal_json")
<< version << iarVersionDetectionRegex; << iar_stm32f469i_discovery_baremetal_json << QString{"bin/iccarm"} << version
<< iarVersionDetectionRegex;
} }
void McuSupportTest::test_passExecutableVersionDetectorToToolchainPackage() void McuSupportTest::test_passExecutableVersionDetectorToToolchainPackage()
@@ -1162,23 +1240,25 @@ void McuSupportTest::test_legacy_passXMLVersionDetectorToNxpAndStmBoardSdkPackag
QTest::addColumn<QString>("xmlAttribute"); QTest::addColumn<QString>("xmlAttribute");
QTest::addColumn<QString>("filePattern"); QTest::addColumn<QString>("filePattern");
QTest::newRow("armgcc_nxp_1050_json") << armgcc_nxp_1050_json << "ksdk" QTest::newRow("armgcc_mimxrt1050_evk_freertos_json")
<< "version" << armgcc_mimxrt1050_evk_freertos_json << "ksdk"
<< "*_manifest_*.xml"; << "version"
QTest::newRow("armgcc_stm32h750b_metal_json") << "*_manifest_*.xml";
<< armgcc_stm32h750b_metal_json << "PackDescription" QTest::newRow("armgcc_stm32h750b_discovery_baremetal_json")
<< armgcc_stm32h750b_discovery_baremetal_json << "PackDescription"
<< "Release" << "Release"
<< "package.xml"; << "package.xml";
QTest::newRow("armgcc_stm32f769i_freertos_json") QTest::newRow("armgcc_stm32f769i_discovery_freertos_json")
<< armgcc_stm32f769i_freertos_json << "PackDescription" << armgcc_stm32f769i_discovery_freertos_json << "PackDescription"
<< "Release" << "Release"
<< "package.xml"; << "package.xml";
QTest::newRow("iar_stm32f469i_metal_json") << iar_stm32f469i_metal_json << "PackDescription" QTest::newRow("iar_stm32f469i_discovery_baremetal_json")
<< "Release" << iar_stm32f469i_discovery_baremetal_json << "PackDescription"
<< "package.xml"; << "Release"
QTest::newRow("iar_nxp_1064_json") << iar_nxp_1064_json << "ksdk" << "package.xml";
<< "version" QTest::newRow("iar_mimxrt1064_evk_freertos_json") << iar_mimxrt1064_evk_freertos_json << "ksdk"
<< "*_manifest_*.xml"; << "version"
<< "*_manifest_*.xml";
} }
void McuSupportTest::test_legacy_passXMLVersionDetectorToNxpAndStmBoardSdkPackage() void McuSupportTest::test_legacy_passXMLVersionDetectorToNxpAndStmBoardSdkPackage()
@@ -1244,11 +1324,14 @@ void McuSupportTest::test_resolveEnvironmentVariablesInDefaultPath()
QCOMPARE(qtcEnvironmentVariable(QUL_ENV_VAR), qtForMcuSdkPath); QCOMPARE(qtcEnvironmentVariable(QUL_ENV_VAR), qtForMcuSdkPath);
const QString qulEnvVariable = QString("%{Env:") + QUL_ENV_VAR + "}"; const QString qulEnvVariable = QString("%{Env:") + QUL_ENV_VAR + "}";
toochainFileDescription.defaultPath = FilePath::fromUserInput( const QString toolchainFileDefaultPath = qulEnvVariable + "/lib/cmake/Qul/toolchain/iar.cmake";
qulEnvVariable + "/lib/cmake/Qul/toolchain/iar.cmake"); const QString toolchainFilePath = QString{qtForMcuSdkPath}
+ "/lib/cmake/Qul/toolchain/iar.cmake";
toochainFileDescription.defaultPath = FilePath::fromUserInput(toolchainFileDefaultPath);
targetDescription.toolchain.file = toochainFileDescription; targetDescription.toolchain.file = toochainFileDescription;
auto [targets, packages] = targetFactory.createTargets(targetDescription, qtForMcuSdkPath); auto [targets, packages] = targetFactory.createTargets(targetDescription, sdkPackagePtr);
auto qtForMCUPkg = findOrDefault(packages, [](const McuPackagePtr &pkg) { auto qtForMCUPkg = findOrDefault(packages, [](const McuPackagePtr &pkg) {
return pkg->environmentVariableName() == QUL_ENV_VAR; return pkg->environmentVariableName() == QUL_ENV_VAR;
}); });
@@ -1263,10 +1346,9 @@ void McuSupportTest::test_resolveEnvironmentVariablesInDefaultPath()
QVERIFY(toolchainFilePkg); QVERIFY(toolchainFilePkg);
QVERIFY(targets.size() == 1); QVERIFY(targets.size() == 1);
QString expectedPkgPath = QString{qtForMcuSdkPath} + "/lib/cmake/Qul/toolchain/iar.cmake"; QCOMPARE(toolchainFilePkg->path().toString(), toolchainFilePath);
QCOMPARE(toolchainFilePkg->path().toString(), expectedPkgPath);
QVERIFY(toolchainFilePkg->path().toString().startsWith(qtForMcuSdkPath)); QVERIFY(toolchainFilePkg->path().toString().startsWith(qtForMcuSdkPath));
QCOMPARE(toolchainFilePkg->defaultPath().toString(), expectedPkgPath); QCOMPARE(toolchainFilePkg->defaultPath().toString(), toolchainFileDefaultPath);
Utils::Environment::modifySystemEnvironment( Utils::Environment::modifySystemEnvironment(
{{QUL_ENV_VAR, qtForMcuSdkPath, EnvironmentItem::Unset}}); {{QUL_ENV_VAR, qtForMcuSdkPath, EnvironmentItem::Unset}});
@@ -1276,11 +1358,14 @@ void McuSupportTest::test_resolveEnvironmentVariablesInDefaultPath()
void McuSupportTest::test_resolveCmakeVariablesInDefaultPath() void McuSupportTest::test_resolveCmakeVariablesInDefaultPath()
{ {
const QString qulCmakeVariable = QString("%{") + QUL_CMAKE_VAR + "}"; const QString qulCmakeVariable = QString("%{") + QUL_CMAKE_VAR + "}";
toochainFileDescription.defaultPath = FilePath::fromUserInput( const QString toolchainFileDefaultPath = qulCmakeVariable
qulCmakeVariable + "/lib/cmake/Qul/toolchain/iar.cmake"); + "/lib/cmake/Qul/toolchain/iar.cmake";
const QString toolchainFilePath = QString{qtForMcuSdkPath}
+ "/lib/cmake/Qul/toolchain/iar.cmake";
toochainFileDescription.defaultPath = FilePath::fromUserInput(toolchainFileDefaultPath);
targetDescription.toolchain.file = toochainFileDescription; targetDescription.toolchain.file = toochainFileDescription;
auto [targets, packages] = targetFactory.createTargets(targetDescription, qtForMcuSdkPath); auto [targets, packages] = targetFactory.createTargets(targetDescription, sdkPackagePtr);
auto qtForMCUPkg = findOrDefault(packages, [](const McuPackagePtr &pkg) { auto qtForMCUPkg = findOrDefault(packages, [](const McuPackagePtr &pkg) {
return pkg->cmakeVariableName() == QUL_CMAKE_VAR; return pkg->cmakeVariableName() == QUL_CMAKE_VAR;
}); });
@@ -1295,10 +1380,9 @@ void McuSupportTest::test_resolveCmakeVariablesInDefaultPath()
QVERIFY(toolchainFilePkg); QVERIFY(toolchainFilePkg);
QVERIFY(targets.size() == 1); QVERIFY(targets.size() == 1);
QString expectedPkgPath = QString{qtForMcuSdkPath} + "/lib/cmake/Qul/toolchain/iar.cmake"; QCOMPARE(toolchainFilePkg->path().toString(), toolchainFilePath);
QCOMPARE(toolchainFilePkg->path().toString(), expectedPkgPath);
QVERIFY(toolchainFilePkg->path().toString().startsWith(qtForMcuSdkPath)); QVERIFY(toolchainFilePkg->path().toString().startsWith(qtForMcuSdkPath));
QCOMPARE(toolchainFilePkg->defaultPath().toString(), expectedPkgPath); QCOMPARE(toolchainFilePkg->defaultPath().toString(), toolchainFileDefaultPath);
} }
void McuSupportTest::test_legacy_createThirdPartyPackage_data() void McuSupportTest::test_legacy_createThirdPartyPackage_data()