diff --git a/src/plugins/mcusupport/mcuabstracttargetfactory.h b/src/plugins/mcusupport/mcuabstracttargetfactory.h index f91d1a5839d..14260ae7799 100644 --- a/src/plugins/mcusupport/mcuabstracttargetfactory.h +++ b/src/plugins/mcusupport/mcuabstracttargetfactory.h @@ -25,7 +25,7 @@ public: virtual ~McuAbstractTargetFactory() = default; virtual QPair createTargets(const McuTargetDescription &, - const Utils::FilePath &qtForMcuPath) + const McuPackagePtr &qtForMCUsPackage) = 0; using AdditionalPackages = QPair, QHash>; diff --git a/src/plugins/mcusupport/mcukitmanager.cpp b/src/plugins/mcusupport/mcukitmanager.cpp index 0cc6c11e1ee..d7e3d1cc389 100644 --- a/src/plugins/mcusupport/mcukitmanager.cpp +++ b/src/plugins/mcusupport/mcukitmanager.cpp @@ -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()) { diff --git a/src/plugins/mcusupport/mcupackage.cpp b/src/plugins/mcusupport/mcupackage.cpp index d2a843dee98..27465380bc3 100644 --- a/src/plugins/mcusupport/mcupackage.cpp +++ b/src/plugins/mcusupport/mcupackage.cpp @@ -118,7 +118,6 @@ FilePath McuPackage::detectionPath() const void McuPackage::setPath(const FilePath &newPath) { m_path = newPath; - m_defaultPath = newPath; updateStatus(); } diff --git a/src/plugins/mcusupport/mcusupportoptions.cpp b/src/plugins/mcusupport/mcusupportoptions.cpp index 878e012325f..59e5325c98a 100644 --- a/src/plugins/mcusupport/mcusupportoptions.cpp +++ b/src/plugins/mcusupport/mcusupportoptions.cpp @@ -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)) diff --git a/src/plugins/mcusupport/mcusupportsdk.cpp b/src/plugins/mcusupport/mcusupportsdk.cpp index 38ba26eca57..89a3222cb60 100644 --- a/src/plugins/mcusupport/mcusupportsdk.cpp +++ b/src/plugins/mcusupport/mcusupportsdk.cpp @@ -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 &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 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 diff --git a/src/plugins/mcusupport/mcusupportsdk.h b/src/plugins/mcusupport/mcusupportsdk.h index 34f3bf06c03..fabbee01c0a 100644 --- a/src/plugins/mcusupport/mcusupportsdk.h +++ b/src/plugins/mcusupport/mcusupportsdk.h @@ -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 &, const SettingsHandler::Ptr &, - const Utils::FilePath &qtForMCUSdkPath, + const McuPackagePtr &qtForMCUsPackage, bool isLegacy); Utils::FilePath kitsPath(const Utils::FilePath &dir); diff --git a/src/plugins/mcusupport/mcutargetfactory.cpp b/src/plugins/mcusupport/mcutargetfactory.cpp index 416ee025f47..a46490d45ea 100644 --- a/src/plugins/mcusupport/mcutargetfactory.cpp +++ b/src/plugins/mcusupport/mcutargetfactory.cpp @@ -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 McuTargetFactory::createTargets(const McuTargetDescription &desc, - const Utils::FilePath & /*qtForMCUSdkPath*/) + const McuPackagePtr &qtForMCUsPackage) { Targets mcuTargets; Packages packages; @@ -80,8 +88,10 @@ QPair 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}; diff --git a/src/plugins/mcusupport/mcutargetfactory.h b/src/plugins/mcusupport/mcutargetfactory.h index 8fbd1186301..16d09acef56 100644 --- a/src/plugins/mcusupport/mcutargetfactory.h +++ b/src/plugins/mcusupport/mcutargetfactory.h @@ -18,7 +18,7 @@ class McuTargetFactory : public McuAbstractTargetFactory public: explicit McuTargetFactory(const SettingsHandler::Ptr &); QPair 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 &); diff --git a/src/plugins/mcusupport/mcutargetfactorylegacy.cpp b/src/plugins/mcusupport/mcutargetfactorylegacy.cpp index cce79b93d74..44f9aa07825 100644 --- a/src/plugins/mcusupport/mcutargetfactorylegacy.cpp +++ b/src/plugins/mcusupport/mcutargetfactorylegacy.cpp @@ -24,8 +24,9 @@ McuTargetFactory::McuTargetFactory(const QHash McuTargetFactory::createTargets(const McuTargetDescription &desc, - const Utils::FilePath &qtForMcuPath) + const McuPackagePtr &qtForMCUsPackage) { + const Utils::FilePath &qtForMcuPath{qtForMCUsPackage->path()}; QHash boardSdkPkgs; QHash freeRTOSPkgs; Targets mcuTargets; diff --git a/src/plugins/mcusupport/mcutargetfactorylegacy.h b/src/plugins/mcusupport/mcutargetfactorylegacy.h index be3ab6e459f..b5967586234 100644 --- a/src/plugins/mcusupport/mcutargetfactorylegacy.h +++ b/src/plugins/mcusupport/mcutargetfactorylegacy.h @@ -28,7 +28,7 @@ public: const SettingsHandler::Ptr &); QPair createTargets(const McuTargetDescription &, - const Utils::FilePath &qtForMCUSdkPath) override; + const McuPackagePtr &qtForMCUsPackage) override; AdditionalPackages getAdditionalPackages() const override; McuToolChainPackagePtr getToolchainCompiler(const McuTargetDescription::Toolchain &) const; diff --git a/src/plugins/mcusupport/test/armgcc_ek_ra6m3g_baremetal_json.h b/src/plugins/mcusupport/test/armgcc_ek_ra6m3g_baremetal_json.h new file mode 100644 index 00000000000..356e7b3e4d3 --- /dev/null +++ b/src/plugins/mcusupport/test/armgcc_ek_ra6m3g_baremetal_json.h @@ -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" + ] + } +} +)"; diff --git a/src/plugins/mcusupport/test/armgcc_ek_ra6m3g_freertos_json.h b/src/plugins/mcusupport/test/armgcc_ek_ra6m3g_freertos_json.h new file mode 100644 index 00000000000..a7dc79022af --- /dev/null +++ b/src/plugins/mcusupport/test/armgcc_ek_ra6m3g_freertos_json.h @@ -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 + } +} +)"; diff --git a/src/plugins/mcusupport/test/armgcc_example_baremetal_json.h b/src/plugins/mcusupport/test/armgcc_example_baremetal_json.h new file mode 100644 index 00000000000..0e1bc9ca461 --- /dev/null +++ b/src/plugins/mcusupport/test/armgcc_example_baremetal_json.h @@ -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 + } +} +)"; diff --git a/src/plugins/mcusupport/test/armgcc_mimxrt1050_evk_baremetal_json.h b/src/plugins/mcusupport/test/armgcc_mimxrt1050_evk_baremetal_json.h new file mode 100644 index 00000000000..1b91b062925 --- /dev/null +++ b/src/plugins/mcusupport/test/armgcc_mimxrt1050_evk_baremetal_json.h @@ -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" + ] + } +} +)"; diff --git a/src/plugins/mcusupport/test/armgcc_mimxrt1050_evk_freertos_json.h b/src/plugins/mcusupport/test/armgcc_mimxrt1050_evk_freertos_json.h new file mode 100644 index 00000000000..3b6887f914f --- /dev/null +++ b/src/plugins/mcusupport/test/armgcc_mimxrt1050_evk_freertos_json.h @@ -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" + } +} +)"; diff --git a/src/plugins/mcusupport/test/armgcc_mimxrt1060_evk_baremetal_json.h b/src/plugins/mcusupport/test/armgcc_mimxrt1060_evk_baremetal_json.h new file mode 100644 index 00000000000..8cb4679cedc --- /dev/null +++ b/src/plugins/mcusupport/test/armgcc_mimxrt1060_evk_baremetal_json.h @@ -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 + } +} +)"; diff --git a/src/plugins/mcusupport/test/armgcc_mimxrt1064_evk_baremetal_json.h b/src/plugins/mcusupport/test/armgcc_mimxrt1064_evk_baremetal_json.h new file mode 100644 index 00000000000..3683818f2a6 --- /dev/null +++ b/src/plugins/mcusupport/test/armgcc_mimxrt1064_evk_baremetal_json.h @@ -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" + } + } +} +)"; diff --git a/src/plugins/mcusupport/test/armgcc_mimxrt1064_evk_freertos_json.h b/src/plugins/mcusupport/test/armgcc_mimxrt1064_evk_freertos_json.h new file mode 100644 index 00000000000..c2778bd61e6 --- /dev/null +++ b/src/plugins/mcusupport/test/armgcc_mimxrt1064_evk_freertos_json.h @@ -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" + } +} +)"; diff --git a/src/plugins/mcusupport/test/armgcc_mimxrt1170_evk_freertos_json.h b/src/plugins/mcusupport/test/armgcc_mimxrt1170_evk_freertos_json.h new file mode 100644 index 00000000000..16918857ad3 --- /dev/null +++ b/src/plugins/mcusupport/test/armgcc_mimxrt1170_evk_freertos_json.h @@ -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 + } +} +)"; diff --git a/src/plugins/mcusupport/test/armgcc_nxp_1050_json.h b/src/plugins/mcusupport/test/armgcc_nxp_1050_json.h deleted file mode 100644 index d153add6c1c..00000000000 --- a/src/plugins/mcusupport/test/armgcc_nxp_1050_json.h +++ /dev/null @@ -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" - } -})"; diff --git a/src/plugins/mcusupport/test/armgcc_nxp_1064_json.h b/src/plugins/mcusupport/test/armgcc_nxp_1064_json.h deleted file mode 100644 index 294b7734f42..00000000000 --- a/src/plugins/mcusupport/test/armgcc_nxp_1064_json.h +++ /dev/null @@ -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"] - } -})"; diff --git a/src/plugins/mcusupport/test/armgcc_nxp_mimxrt1170_evk_freertos_json.h b/src/plugins/mcusupport/test/armgcc_nxp_mimxrt1170_evk_freertos_json.h deleted file mode 100644 index 4e22805e168..00000000000 --- a/src/plugins/mcusupport/test/armgcc_nxp_mimxrt1170_evk_freertos_json.h +++ /dev/null @@ -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 - } - ] - } -})"; diff --git a/src/plugins/mcusupport/test/armgcc_stm32f469i_discovery_baremetal_json.h b/src/plugins/mcusupport/test/armgcc_stm32f469i_discovery_baremetal_json.h new file mode 100644 index 00000000000..9dff84e6f08 --- /dev/null +++ b/src/plugins/mcusupport/test/armgcc_stm32f469i_discovery_baremetal_json.h @@ -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 + } +} +)"; diff --git a/src/plugins/mcusupport/test/armgcc_stm32f769i_discovery_baremetal_json.h b/src/plugins/mcusupport/test/armgcc_stm32f769i_discovery_baremetal_json.h new file mode 100644 index 00000000000..5e85ada4362 --- /dev/null +++ b/src/plugins/mcusupport/test/armgcc_stm32f769i_discovery_baremetal_json.h @@ -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 + } +} +)"; diff --git a/src/plugins/mcusupport/test/armgcc_stm32f769i_discovery_freertos_json.h b/src/plugins/mcusupport/test/armgcc_stm32f769i_discovery_freertos_json.h new file mode 100644 index 00000000000..60742512cc5 --- /dev/null +++ b/src/plugins/mcusupport/test/armgcc_stm32f769i_discovery_freertos_json.h @@ -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 + } +} +)"; diff --git a/src/plugins/mcusupport/test/armgcc_stm32f769i_freertos_json.h b/src/plugins/mcusupport/test/armgcc_stm32f769i_freertos_json.h deleted file mode 100644 index 6a64bca784a..00000000000 --- a/src/plugins/mcusupport/test/armgcc_stm32f769i_freertos_json.h +++ /dev/null @@ -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 - } -})"; diff --git a/src/plugins/mcusupport/test/armgcc_stm32h750b_discovery_baremetal_json.h b/src/plugins/mcusupport/test/armgcc_stm32h750b_discovery_baremetal_json.h new file mode 100644 index 00000000000..78c09d5cadf --- /dev/null +++ b/src/plugins/mcusupport/test/armgcc_stm32h750b_discovery_baremetal_json.h @@ -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 + } +} +)"; diff --git a/src/plugins/mcusupport/test/armgcc_stm32h750b_metal_json.h b/src/plugins/mcusupport/test/armgcc_stm32h750b_metal_json.h deleted file mode 100644 index 3dec08a2bd8..00000000000 --- a/src/plugins/mcusupport/test/armgcc_stm32h750b_metal_json.h +++ /dev/null @@ -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 - } -})"; diff --git a/src/plugins/mcusupport/test/errors_json.h b/src/plugins/mcusupport/test/errors_json.h new file mode 100644 index 00000000000..9ab54ed68a7 --- /dev/null +++ b/src/plugins/mcusupport/test/errors_json.h @@ -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 + } + } +} +)"; diff --git a/src/plugins/mcusupport/test/gcc_desktop_json.h b/src/plugins/mcusupport/test/gcc_desktop_json.h index bebaa16d834..63c42cc37e8 100644 --- a/src/plugins/mcusupport/test/gcc_desktop_json.h +++ b/src/plugins/mcusupport/test/gcc_desktop_json.h @@ -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" + } + } } - } -})"; +} +)"; diff --git a/src/plugins/mcusupport/test/ghs_rh850_d1m1a_baremetal_json.h b/src/plugins/mcusupport/test/ghs_rh850_d1m1a_baremetal_json.h index 0669eba8a97..d44d672b0ea 100644 --- a/src/plugins/mcusupport/test/ghs_rh850_d1m1a_baremetal_json.h +++ b/src/plugins/mcusupport/test/ghs_rh850_d1m1a_baremetal_json.h @@ -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 + } +} +)"; diff --git a/src/plugins/mcusupport/test/ghs_tviic2d4m_baremetal_json.h b/src/plugins/mcusupport/test/ghs_tviic2d4m_baremetal_json.h new file mode 100644 index 00000000000..a2c31c289a2 --- /dev/null +++ b/src/plugins/mcusupport/test/ghs_tviic2d4m_baremetal_json.h @@ -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 + } +} +)"; diff --git a/src/plugins/mcusupport/test/ghs_tviic2d6m_baremetal_json.h b/src/plugins/mcusupport/test/ghs_tviic2d6m_baremetal_json.h new file mode 100644 index 00000000000..d10a28097a7 --- /dev/null +++ b/src/plugins/mcusupport/test/ghs_tviic2d6m_baremetal_json.h @@ -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 + } +} +)"; diff --git a/src/plugins/mcusupport/test/iar_ek_ra6m3g_baremetal_json.h b/src/plugins/mcusupport/test/iar_ek_ra6m3g_baremetal_json.h new file mode 100644 index 00000000000..03b9626dd50 --- /dev/null +++ b/src/plugins/mcusupport/test/iar_ek_ra6m3g_baremetal_json.h @@ -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 + } +} +)"; diff --git a/src/plugins/mcusupport/test/iar_ek_ra6m3g_freertos_json.h b/src/plugins/mcusupport/test/iar_ek_ra6m3g_freertos_json.h new file mode 100644 index 00000000000..ef9e0d9b348 --- /dev/null +++ b/src/plugins/mcusupport/test/iar_ek_ra6m3g_freertos_json.h @@ -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 + } +} +)"; diff --git a/src/plugins/mcusupport/test/iar_example_baremetal_json.h b/src/plugins/mcusupport/test/iar_example_baremetal_json.h new file mode 100644 index 00000000000..ca73ea8b422 --- /dev/null +++ b/src/plugins/mcusupport/test/iar_example_baremetal_json.h @@ -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 + } +} +)"; diff --git a/src/plugins/mcusupport/test/iar_mimxrt1050_evk_baremetal_json.h b/src/plugins/mcusupport/test/iar_mimxrt1050_evk_baremetal_json.h new file mode 100644 index 00000000000..42092c4edc3 --- /dev/null +++ b/src/plugins/mcusupport/test/iar_mimxrt1050_evk_baremetal_json.h @@ -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" + ] + } +} +)"; diff --git a/src/plugins/mcusupport/test/iar_mimxrt1050_evk_freertos_json.h b/src/plugins/mcusupport/test/iar_mimxrt1050_evk_freertos_json.h new file mode 100644 index 00000000000..d069b90759a --- /dev/null +++ b/src/plugins/mcusupport/test/iar_mimxrt1050_evk_freertos_json.h @@ -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" + } +} +)"; diff --git a/src/plugins/mcusupport/test/iar_mimxrt1060_evk_baremetal_json.h b/src/plugins/mcusupport/test/iar_mimxrt1060_evk_baremetal_json.h new file mode 100644 index 00000000000..4131601d2a5 --- /dev/null +++ b/src/plugins/mcusupport/test/iar_mimxrt1060_evk_baremetal_json.h @@ -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" + } + } +} +)"; diff --git a/src/plugins/mcusupport/test/iar_mimxrt1064_evk_baremetal_json.h b/src/plugins/mcusupport/test/iar_mimxrt1064_evk_baremetal_json.h new file mode 100644 index 00000000000..ec582712703 --- /dev/null +++ b/src/plugins/mcusupport/test/iar_mimxrt1064_evk_baremetal_json.h @@ -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" + } + } +} +)"; diff --git a/src/plugins/mcusupport/test/iar_nxp_1064_json.h b/src/plugins/mcusupport/test/iar_mimxrt1064_evk_freertos_json.h similarity index 54% rename from src/plugins/mcusupport/test/iar_nxp_1064_json.h rename to src/plugins/mcusupport/test/iar_mimxrt1064_evk_freertos_json.h index 2c34bc2a544..83255e94c75 100644 --- a/src/plugins/mcusupport/test/iar_nxp_1064_json.h +++ b/src/plugins/mcusupport/test/iar_mimxrt1064_evk_freertos_json.h @@ -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 - } } -})"; +} +)"; diff --git a/src/plugins/mcusupport/test/iar_mimxrt1170_evk_freertos_json.h b/src/plugins/mcusupport/test/iar_mimxrt1170_evk_freertos_json.h new file mode 100644 index 00000000000..51c9e21a805 --- /dev/null +++ b/src/plugins/mcusupport/test/iar_mimxrt1170_evk_freertos_json.h @@ -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 + } +} +)"; diff --git a/src/plugins/mcusupport/test/iar_stm32f469i_discovery_baremetal_json.h b/src/plugins/mcusupport/test/iar_stm32f469i_discovery_baremetal_json.h new file mode 100644 index 00000000000..af002fa7fa3 --- /dev/null +++ b/src/plugins/mcusupport/test/iar_stm32f469i_discovery_baremetal_json.h @@ -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 + } +} +)"; diff --git a/src/plugins/mcusupport/test/iar_stm32f469i_metal_json.h b/src/plugins/mcusupport/test/iar_stm32f469i_metal_json.h deleted file mode 100644 index fdf49123284..00000000000 --- a/src/plugins/mcusupport/test/iar_stm32f469i_metal_json.h +++ /dev/null @@ -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 - } -})"; diff --git a/src/plugins/mcusupport/test/iar_stm32f769i_discovery_baremetal_json.h b/src/plugins/mcusupport/test/iar_stm32f769i_discovery_baremetal_json.h new file mode 100644 index 00000000000..bb749ae5e39 --- /dev/null +++ b/src/plugins/mcusupport/test/iar_stm32f769i_discovery_baremetal_json.h @@ -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 + } +} +)"; diff --git a/src/plugins/mcusupport/test/iar_stm32f769i_discovery_freertos_json.h b/src/plugins/mcusupport/test/iar_stm32f769i_discovery_freertos_json.h new file mode 100644 index 00000000000..4200c61611d --- /dev/null +++ b/src/plugins/mcusupport/test/iar_stm32f769i_discovery_freertos_json.h @@ -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 + } +} +)"; diff --git a/src/plugins/mcusupport/test/iar_stm32h750b_discovery_baremetal_json.h b/src/plugins/mcusupport/test/iar_stm32h750b_discovery_baremetal_json.h new file mode 100644 index 00000000000..a272a3a4800 --- /dev/null +++ b/src/plugins/mcusupport/test/iar_stm32h750b_discovery_baremetal_json.h @@ -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 + } +} +)"; diff --git a/src/plugins/mcusupport/test/iar_tviic2d6m_baremetal_json.h b/src/plugins/mcusupport/test/iar_tviic2d6m_baremetal_json.h new file mode 100644 index 00000000000..78520e48d24 --- /dev/null +++ b/src/plugins/mcusupport/test/iar_tviic2d6m_baremetal_json.h @@ -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 + } +} +)"; diff --git a/src/plugins/mcusupport/test/msvc_desktop_json.h b/src/plugins/mcusupport/test/msvc_desktop_json.h index e8d5c55cb36..5f5b22e3e85 100644 --- a/src/plugins/mcusupport/test/msvc_desktop_json.h +++ b/src/plugins/mcusupport/test/msvc_desktop_json.h @@ -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" + } } } - } -})"; +} +)"; diff --git a/src/plugins/mcusupport/test/unittest.cpp b/src/plugins/mcusupport/test/unittest.cpp index e07a3077224..f9cd16179f6 100644 --- a/src/plugins/mcusupport/test/unittest.cpp +++ b/src/plugins/mcusupport/test/unittest.cpp @@ -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("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("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("description"); QTest::addColumn("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{{"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{{"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{{"STM32Cube_FW_F4_SDK_PATH"}, "IARToolchain"}.unite( commonSettings); - QTest::newRow("nxp1050") << armgcc_nxp_1050_json + QTest::newRow("nxp1050") << armgcc_mimxrt1050_evk_freertos_json << QSet{{"EVKB_IMXRT1050_SDK_PATH"}, {QString{ Legacy::Constants::SETTINGS_KEY_FREERTOS_PREFIX} .append("IMXRT1050")}, "GNUArmEmbeddedToolchain"} .unite(commonSettings); - QTest::newRow("stm32h750b") << armgcc_stm32h750b_metal_json - << QSet{{"STM32Cube_FW_H7_SDK_PATH"}, - "GNUArmEmbeddedToolchain"} - .unite(commonSettings); - QTest::newRow("stm32f769i") << armgcc_stm32f769i_freertos_json - << QSet{{"STM32Cube_FW_F7_SDK_PATH"}, - "GNUArmEmbeddedToolchain"} - .unite(commonSettings); + QTest::newRow("armgcc_stm32h750b_discovery_baremetal_json") + << armgcc_stm32h750b_discovery_baremetal_json + << QSet{{"STM32Cube_FW_H7_SDK_PATH"}, "GNUArmEmbeddedToolchain"}.unite( + commonSettings); + QTest::newRow("armgcc_stm32f769i_discovery_freertos_json") + << armgcc_stm32f769i_discovery_freertos_json + << QSet{{"STM32Cube_FW_F7_SDK_PATH"}, "GNUArmEmbeddedToolchain"}.unite( + commonSettings); QTest::newRow("ghs_rh850_d1m1a_baremetal_json") << ghs_rh850_d1m1a_baremetal_json << QSet{"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 settings = transform>(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("freeRtosEnvVar"); QTest::addColumn("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("json"); QTest::addColumn("toolchainFilePath"); + QTest::addColumn("toolchainFileDefaultPath"); QTest::addColumn("compilerPath"); QTest::addColumn("compilerSetting"); QTest::addColumn("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("environmentVariable"); QTest::addColumn("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("expectedPath"); QTest::addColumn("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("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("versionDetectionPath"); QTest::addColumn("versionDetectionArgs"); QTest::addColumn("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("xmlAttribute"); QTest::addColumn("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()