McuSupport: Add FreeRTOS variations to hardcoded list of targets

Task-number: QTCREATORBUG-23938
Change-Id: I73ca401bd323bd001fa5e05c33783307c94f10be
Reviewed-by: Rainer Keller <Rainer.Keller@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Alessandro Portale
2020-05-05 06:48:26 +02:00
parent eccf1269ac
commit a5074ac987

View File

@@ -249,6 +249,9 @@ void hardcodedTargetsAndPackages(const Utils::FilePath &dir, QVector<McuPackage
McuPackage* evkbImxrt1050SdkPackage = Sdk::createEvkbImxrt1050SdkPackage();
McuPackage *mcuXpressoIdePackage = createMcuXpressoIdePackage();
McuPackage *rglPackage = createRGLPackage();
McuPackage *freeRTOSSTM32F7Package = createFreeRTOSSourcesPackage("STM32F7");
McuPackage *freeRTOSIMXRT1050Package = createFreeRTOSSourcesPackage("IMXRT1050");
McuPackage *freeRTOSIMXRT1064Package = createFreeRTOSSourcesPackage("IMXRT1064");
QVector<McuPackage*> stmEvalPackages = {
armGccPackage, stm32CubeProgrammerPackage};
@@ -260,7 +263,8 @@ void hardcodedTargetsAndPackages(const Utils::FilePath &dir, QVector<McuPackage
*packages = {
armGccPackage, desktopToolChainPackage, ghsToolchainPackage,
stm32CubeFwF7SdkPackage, stm32CubeProgrammerPackage, evkbImxrt1050SdkPackage,
mcuXpressoIdePackage, rglPackage};
mcuXpressoIdePackage, rglPackage,
freeRTOSSTM32F7Package, freeRTOSIMXRT1050Package, freeRTOSIMXRT1064Package};
const QString vendorStm = "STM";
const QString vendorNxp = "NXP";
@@ -272,36 +276,58 @@ void hardcodedTargetsAndPackages(const Utils::FilePath &dir, QVector<McuPackage
const QString qulPlatform;
const QVector<McuPackage*> &packages;
McuToolChainPackage *toolchainPackage;
McuPackage *freeRTOSPackage;
const QVector<int> colorDepths;
} targets[] = {
{vendorNxp, {"MIMXRT1050-EVK"}, nxpEvalPackages, armGccPackage, {16}},
{vendorNxp, {"MIMXRT1064-EVK"}, nxpEvalPackages, armGccPackage, {16}},
{vendorQt, {"Qt"}, desktopPackages, desktopToolChainPackage, {32}},
{vendorRenesas, {"RH850-D1M1A"}, renesasEvalPackages, ghsToolchainPackage, {32}},
{vendorStm, {"STM32F469I-DISCOVERY"}, stmEvalPackages, armGccPackage, {24}},
{vendorStm, {"STM32F7508-DISCOVERY"}, stmEvalPackages, armGccPackage, {32, 16}},
{vendorStm, {"STM32F769I-DISCOVERY"}, stmEvalPackages, armGccPackage, {32}},
{vendorStm, {"STM32H750B-DISCOVERY"}, stmEvalPackages, armGccPackage, {32}},
{vendorStm, {"STM32L4R9I-DISCOVERY"}, stmEvalPackages, armGccPackage, {24}},
{vendorStm, {"STM32L4R9I-EVAL"}, stmEvalPackages, armGccPackage, {24}}
{vendorNxp, {"MIMXRT1050-EVK"}, nxpEvalPackages, armGccPackage,
freeRTOSIMXRT1050Package, {16}},
{vendorNxp, {"MIMXRT1064-EVK"}, nxpEvalPackages, armGccPackage,
freeRTOSIMXRT1064Package, {16}},
{vendorQt, {"Qt"}, desktopPackages, desktopToolChainPackage,
nullptr, {32}},
{vendorRenesas, {"RH850-D1M1A"}, renesasEvalPackages, ghsToolchainPackage,
nullptr, {32}},
{vendorStm, {"STM32F469I-DISCOVERY"}, stmEvalPackages, armGccPackage,
nullptr, {24}},
{vendorStm, {"STM32F7508-DISCOVERY"}, stmEvalPackages, armGccPackage,
freeRTOSSTM32F7Package, {32, 16}},
{vendorStm, {"STM32F769I-DISCOVERY"}, stmEvalPackages, armGccPackage,
freeRTOSSTM32F7Package, {32}},
{vendorStm, {"STM32H750B-DISCOVERY"}, stmEvalPackages, armGccPackage,
nullptr, {32}},
{vendorStm, {"STM32L4R9I-DISCOVERY"}, stmEvalPackages, armGccPackage,
nullptr, {24}},
{vendorStm, {"STM32L4R9I-EVAL"}, stmEvalPackages, armGccPackage,
nullptr, {24}}
};
const QString QulTargetTemplate =
dir.toString() + "/lib/cmake/Qul/QulTargets/QulTargets_%1_%2.cmake";
for (auto target : targets) {
const McuTarget::OS os =
target.toolchainPackage->type() == McuToolChainPackage::TypeDesktop
? McuTarget::OS::Desktop : McuTarget::OS::BareMetal;
for (int colorDepth : target.colorDepths) {
const QString QulTarget =
QulTargetTemplate.arg(target.qulPlatform, QString::number(colorDepth));
if (!Utils::FilePath::fromUserInput(QulTarget).exists())
continue;
auto mcuTarget = new McuTarget(target.vendor, target.qulPlatform, os, target.packages,
target.toolchainPackage);
if (target.colorDepths.count() > 1)
mcuTarget->setColorDepth(colorDepth);
mcuTargets->append(mcuTarget);
for (const auto target : targets) {
for (auto os : {McuTarget::OS::Desktop, McuTarget::OS::BareMetal,
McuTarget::OS::FreeRTOS}) {
for (int colorDepth : target.colorDepths) {
QVector<McuPackage*> required3rdPartyPackages = target.packages;
if (os == McuTarget::OS::FreeRTOS) {
if (target.freeRTOSPackage)
required3rdPartyPackages.append(target.freeRTOSPackage);
else
continue;
} else if (os == McuTarget::OS::Desktop && target.toolchainPackage->type()
!= McuToolChainPackage::TypeDesktop) {
continue;
}
const QString QulTarget =
QulTargetTemplate.arg(target.qulPlatform, QString::number(colorDepth));
if (!Utils::FilePath::fromUserInput(QulTarget).exists())
continue;
auto mcuTarget = new McuTarget(target.vendor, target.qulPlatform, os,
required3rdPartyPackages, target.toolchainPackage);
if (target.colorDepths.count() > 1)
mcuTarget->setColorDepth(colorDepth);
mcuTargets->append(mcuTarget);
}
}
}
}