McuSupport: Create freeRTOS package from JSON

Adjust test JSONs.
Write unit tests.
Adjust existing package creation to support freeRTOS package.

Example JSON:
"freeRTOS": {
    "cmakeVar": "FREERTOS_DIR",
    "defaultValue": "$QUL_BOARD_SDK_DIR/rtos/freertos/freertos_kernel",
    "envVar": "IMXRT1064_FREERTOS_DIR",
    "id": "NXP_FREERTOS_DIR",
    "label": "FreeRTOS SDK for MIMXRT1064-EVK",
    "optional": false,
    "setting": "FreeRTOSSourcePackage_IMXRT1064",
    "type": "path"
}

Change-Id: I25ca9f732cd3a54eebb23b73b7950e11976c0f68
Reviewed-by: Dawid Śliwa <dawid.sliwa@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Piotr Mućko
2022-08-12 17:32:59 +02:00
parent b2b6577d5c
commit 6a8a6d937c
9 changed files with 312 additions and 131 deletions

View File

@@ -692,8 +692,7 @@ McuTargetDescription parseDescriptionJson(const QByteArray &data)
const PackageDescription toolchainPackage = parsePackage(compiler);
const PackageDescription toolchainFilePackage = parsePackage(toolchainFile);
const PackageDescription boardSdkPackage{parsePackage(boardSdk)};
const QList<PackageDescription> freeRtosEntries = parsePackages(
freeRTOS.value(CMAKE_ENTRIES).toArray());
const PackageDescription freeRtosPackage{parsePackage(freeRTOS)};
const QVariantList toolchainVersions = toolchain.value("versions").toArray().toVariantList();
const auto toolchainVersionsList = Utils::transform<QStringList>(toolchainVersions,
@@ -727,10 +726,8 @@ McuTargetDescription parseDescriptionJson(const QByteArray &data)
toolchainPackage,
toolchainFilePackage},
boardSdkPackage,
{
freeRTOS.value("envVar").toString(),
freeRtosEntries,
}};
{freeRTOS.value("envVar").toString(),
freeRtosPackage}};
}
// https://doc.qt.io/qtcreator/creator-developing-mcu.html#supported-qt-for-mcus-sdks