forked from qt-creator/qt-creator
McuSupport: Add support for creating FreeRTOS kits
Besides Baremetal, Qt for MCUs also supports FreeRTOS for a few targets. This change: - shows the FreeRTOS source path chooser - set the FreeRTOS source path as kit environment variable - sets OS=FreeRTOS in the kit CMake configuration and kit meta data Task-number: QTCREATORBUG-23938 Change-Id: I69cbd4f9b6b4a842788a8dad57905ef517b8b1d5 Reviewed-by: Rainer Keller <Rainer.Keller@qt.io> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -220,6 +220,24 @@ static McuPackage *createMcuXpressoIdePackage()
|
||||
return result;
|
||||
}
|
||||
|
||||
static McuPackage *createFreeRTOSSourcesPackage(const QString &envVarPrefix)
|
||||
{
|
||||
const QString envVar = envVarPrefix + "_FREERTOS_DIR";
|
||||
|
||||
const QString defaultPath =
|
||||
qEnvironmentVariableIsSet(envVar.toLatin1()) ?
|
||||
qEnvironmentVariable(envVar.toLatin1()) : QDir::homePath();
|
||||
|
||||
auto result = new McuPackage(
|
||||
QString::fromLatin1("FreeRTOS Sources (%1)").arg(envVarPrefix),
|
||||
defaultPath,
|
||||
{},
|
||||
QString::fromLatin1("FreeRTOSSourcePackage_%1").arg(envVarPrefix));
|
||||
result->setDownloadUrl("https://freertos.org");
|
||||
result->setEnvironmentVariableName(envVar);
|
||||
return result;
|
||||
}
|
||||
|
||||
void hardcodedTargetsAndPackages(const Utils::FilePath &dir, QVector<McuPackage *> *packages,
|
||||
QVector<McuTarget *> *mcuTargets)
|
||||
{
|
||||
@@ -271,12 +289,15 @@ void hardcodedTargetsAndPackages(const Utils::FilePath &dir, QVector<McuPackage
|
||||
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, target.packages,
|
||||
auto mcuTarget = new McuTarget(target.vendor, target.qulPlatform, os, target.packages,
|
||||
target.toolchainPackage);
|
||||
if (target.colorDepths.count() > 1)
|
||||
mcuTarget->setColorDepth(colorDepth);
|
||||
|
||||
Reference in New Issue
Block a user