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 QPair<Targets, Packages> createTargets(const McuTargetDescription &,
const Utils::FilePath &qtForMcuPath)
const McuPackagePtr &qtForMCUsPackage)
= 0;
using AdditionalPackages
= QPair<QHash<QString, McuToolChainPackagePtr>, QHash<QString, McuPackagePtr>>;

View File

@@ -490,8 +490,7 @@ void createAutomaticKits(const SettingsHandler::Ptr &settingsHandler)
return;
}
FilePath dir = qtForMCUsPackage->path();
McuSdkRepository repo{targetsAndPackages(dir, settingsHandler)};
McuSdkRepository repo{targetsAndPackages(qtForMCUsPackage, settingsHandler)};
bool needsUpgrade = false;
for (const auto &target : qAsConst(repo.mcuTargets)) {
@@ -529,8 +528,7 @@ void upgradeKitsByCreatingNewPackage(const SettingsHandler::Ptr &settingsHandler
McuPackagePtr qtForMCUsPackage{createQtForMCUsPackage(settingsHandler)};
auto dir = qtForMCUsPackage->path();
McuSdkRepository repo{targetsAndPackages(dir, settingsHandler)};
McuSdkRepository repo{targetsAndPackages(qtForMCUsPackage, settingsHandler)};
for (const auto &target : qAsConst(repo.mcuTargets)) {
if (!matchingKits(target.get(), qtForMCUsPackage).empty())
@@ -571,8 +569,7 @@ void updatePathsInExistingKits(const SettingsHandler::Ptr &settingsHandler)
{
McuPackagePtr qtForMCUsPackage{createQtForMCUsPackage(settingsHandler)};
FilePath dir = qtForMCUsPackage->path();
McuSdkRepository repo{targetsAndPackages(dir, settingsHandler)};
McuSdkRepository repo{targetsAndPackages(qtForMCUsPackage, settingsHandler)};
for (const auto &target : qAsConst(repo.mcuTargets)) {
if (target->isValid()) {
for (auto *kit : kitsWithMismatchedDependencies(target.get())) {
@@ -657,8 +654,7 @@ void fixExistingKits(const SettingsHandler::Ptr &settingsHandler)
McuPackagePtr qtForMCUsPackage{createQtForMCUsPackage(settingsHandler)};
qtForMCUsPackage->updateStatus();
if (qtForMCUsPackage->isValidStatus()) {
FilePath dir = qtForMCUsPackage->path();
McuSdkRepository repo{targetsAndPackages(dir, settingsHandler)};
McuSdkRepository repo{targetsAndPackages(qtForMCUsPackage, settingsHandler)};
for (const auto &target : qAsConst(repo.mcuTargets))
for (auto kit : existingKits(target.get())) {
if (McuDependenciesKitAspect::dependencies(kit).isEmpty()) {

View File

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

View File

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

View File

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

View File

@@ -25,12 +25,13 @@ McuPackagePtr createQtForMCUsPackage(const SettingsHandler::Ptr &);
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 &);
McuSdkRepository targetsFromDescriptions(const QList<McuTargetDescription> &,
const SettingsHandler::Ptr &,
const Utils::FilePath &qtForMCUSdkPath,
const McuPackagePtr &qtForMCUsPackage,
bool isLegacy);
Utils::FilePath kitsPath(const Utils::FilePath &dir);

View File

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

View File

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

View File

@@ -24,8 +24,9 @@ McuTargetFactory::McuTargetFactory(const QHash<QString, ToolchainCompilerCreator
{}
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> freeRTOSPkgs;
Targets mcuTargets;

View File

@@ -28,7 +28,7 @@ public:
const SettingsHandler::Ptr &);
QPair<Targets, Packages> createTargets(const McuTargetDescription &,
const Utils::FilePath &qtForMCUSdkPath) override;
const McuPackagePtr &qtForMCUsPackage) override;
AdditionalPackages getAdditionalPackages() const override;
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
constexpr auto gcc_desktop_json = R"({
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "Qt",
"platformName": "Desktop",
"vendor": "Qt",
"colorDepths": [
32
],
"pathEntries": [
],
"environmentEntries": [
],
"cmakeEntries": [
{
"envVar": "Qul_DIR",
"label": "Qt for MCUs SDK",
"type": "path",
"cmakeVar": "Qul_ROOT",
"optional": false
}
]
},
"toolchain": {
"id": "gcc",
"versions": [
"9.4.0",
"10.3.1"
],
"compiler": {
"defaultValue": "/usr",
"versionDetection": {
"filePattern": "bin/g++",
"executableArgs": "--version",
"regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b"
}
constexpr auto gcc_desktop_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "Qt",
"platformName": "Desktop",
"vendor": "Qt",
"colorDepths": [
32
]
},
"toolchain": {
"id": "gcc",
"versions": [
"9.4.0",
"10.3.1"
],
"compiler": {
"label": "GNU Toolchain",
"defaultValue": "/usr",
"versionDetection": {
"executableArgs": "--version",
"filePattern": "bin/g++",
"regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b"
}
}
}
}
})";
}
)";

View File

@@ -3,63 +3,68 @@
#pragma once
constexpr auto ghs_rh850_d1m1a_baremetal_json = R"({
"qulVersion": "2.1.5",
"compatVersion": "1",
"platform": {
"id": "RH850-D1M1A-BAREMETAL",
"vendor": "RENESAS",
"colorDepths": [
32
],
"pathEntries": [],
"environmentEntries": [],
"cmakeEntries": [
{
"id": "Qul_DIR",
"description": "Qt for MCUs SDK",
"type": "path",
"cmakeVar": "Qul_ROOT",
"optional": false
}
]
},
"toolchain": {
"id": "greenhills",
"versions": [
"2018.1.5"
],
"compiler": {
"description": "Green Hills Compiler",
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"setting": "GHSToolchain",
"label": "Green Hills Compiler",
"type": "path",
"optional": false
constexpr auto ghs_rh850_d1m1a_baremetal_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "RH850-D1M1A-BAREMETAL",
"vendor": "RENESAS",
"colorDepths": [
32
],
"cmakeEntries": [
{
"id": "FlashProgrammer_path",
"setting": "FlashProgrammerPath",
"label": "Path to Renesas Flash Programmer",
"type": "path",
"cmakeVar": "RENESAS_FLASH_PROGRAMMER_PATH",
"defaultValue": {
"windows": "%{Env:PROGRAMSANDFILES}/Renesas Electronics/Programming Tools/Renesas Flash Programmer V3.09",
"unix": "%{Env:HOME}"
},
"envVar": "RenesasFlashProgrammer_PATH",
"optional": true
}
]
},
"file": {
"description": "CMake Toolchain File",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
"defaultValue": "/opt/qtformcu/2.2/lib/cmake/Qul/toolchain/ghs.cmake",
"visible": false,
"optional": false
}
},
"boardSdk": {
"envVar": "RGL_DIR",
"setting": "RGL_DIR",
"versions": [ "2.0.0a" ],
"id": "RGL_DIR",
"description": "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
"toolchain": {
"id": "greenhills",
"versions": [
"2018.1.5"
],
"compiler": {
"cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR",
"setting": "GHSToolchain",
"label": "Green Hills 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
}
},
"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
constexpr auto iar_nxp_1064_json = R"({
constexpr auto iar_mimxrt1064_evk_freertos_json = R"(
{
"qulVersion": "2.3.0",
"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": {
"cmakeVar": "QUL_BOARD_SDK_DIR",
"envVar": "EVK_MIMXRT1064_SDK_PATH",
"id": "NXP_SDK_DIR",
"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"
},
"versions": ["2.11.0"]
}
},
"freeRTOS": {
"cmakeVar": "FREERTOS_DIR",
"defaultValue": "%{QUL_BOARD_SDK_DIR}/rtos/freertos/freertos_kernel",
"validation": "tasks.c",
"envVar": "IMXRT1064_FREERTOS_DIR",
"id": "NXP_FREERTOS_DIR",
"label": "FreeRTOS SDK for MIMXRT1064-EVK",
"optional": false,
"setting": "FreeRTOSSourcePackage_IMXRT1064",
"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
constexpr auto msvc_desktop_json = R"({
"qulVersion": "@CMAKE_PROJECT_VERSION@",
"compatVersion": "@COMPATIBILITY_VERSION@",
"platform": {
"id": "Qt",
"platformName": "Desktop",
"vendor": "Qt",
"colorDepths": [
32
],
"pathEntries": [
],
"environmentEntries": [
],
"cmakeEntries": [
{
"envVar": "Qul_DIR",
"label": "Qt for MCUs SDK",
"type": "path",
"cmakeVar": "Qul_ROOT",
"optional": false
}
]
},
"toolchain": {
"id": "msvc",
"versions": [
"19.20","19.21","19.22","19.23","19.24",
"19.25","19.26","19.27","19.28","19.29"
],
"compiler": {
"defaultValue": "%{Env:MSVC_COMPILER_DIR}",
"versionDetection" : {
"filePattern": "cl.exe",
"executableArgs": "--version",
"regex": "\\b(\\d+\\.\\d+)\\.\\d+\\b"
constexpr auto msvc_desktop_json = R"(
{
"qulVersion": "2.3.0",
"compatVersion": "1",
"platform": {
"id": "Qt",
"platformName": "Desktop",
"vendor": "Qt",
"colorDepths": [
32
]
},
"toolchain": {
"id": "msvc",
"versions": [
"19.20",
"19.21",
"19.22",
"19.23",
"19.24",
"19.25",
"19.26",
"19.27",
"19.28",
"19.29"
],
"compiler": {
"label": "MSVC Toolchain",
"defaultValue": "%{Env:MSVC_COMPILER_DIR}",
"versionDetection": {
"filePattern": "cl.exe",
"executableArgs": "--version",
"regex": "\\b(\\d+\\.\\d+)\\.\\d+\\b"
}
}
}
}
})";
}
)";

View File

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