forked from qt-creator/qt-creator
McuSupport: chop RTOS environment variable suffix
Change-Id: Iba35246af403a00bd0f750e3769e22a5010825eb Reviewed-by: Alessandro Portale <alessandro.portale@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
@@ -26,6 +26,8 @@
|
||||
#include "mcuhelpers.h"
|
||||
#include "mcutargetdescription.h"
|
||||
|
||||
#include <QRegularExpression>
|
||||
|
||||
namespace McuSupport {
|
||||
|
||||
Internal::McuTarget::OS deduceOperatingSystem(const Internal::Sdk::McuTargetDescription &desc)
|
||||
@@ -39,4 +41,11 @@ Internal::McuTarget::OS deduceOperatingSystem(const Internal::Sdk::McuTargetDesc
|
||||
return OS::BareMetal;
|
||||
}
|
||||
|
||||
QString removeRtosSuffix(const QString &environmentVariable)
|
||||
{
|
||||
static const QRegularExpression freeRtosSuffix{R"(_FREERTOS_\w+)"};
|
||||
QString result = environmentVariable;
|
||||
return result.replace(freeRtosSuffix, QString{});
|
||||
}
|
||||
|
||||
} //namespace McuSupport
|
||||
|
@@ -36,5 +36,6 @@ struct McuTargetDescription;
|
||||
}
|
||||
|
||||
Internal::McuTarget::OS deduceOperatingSystem(const Internal::Sdk::McuTargetDescription &);
|
||||
QString removeRtosSuffix(const QString &environmentVariable);
|
||||
|
||||
}; // namespace McuSupport
|
||||
|
@@ -51,8 +51,8 @@ QtcPlugin {
|
||||
"mcutargetdescription.h",
|
||||
"mcukitinformation.cpp",
|
||||
"mcukitinformation.h",
|
||||
"mcuhelpers.h",
|
||||
"mcuhelpers.cpp",
|
||||
"mcuhelpers.h",
|
||||
]
|
||||
|
||||
Group {
|
||||
|
@@ -51,8 +51,9 @@ namespace Internal {
|
||||
|
||||
class McuAbstractPackage;
|
||||
|
||||
struct McuSdkRepository
|
||||
class McuSdkRepository
|
||||
{
|
||||
public:
|
||||
Packages packages;
|
||||
Targets mcuTargets;
|
||||
void deletePackagesAndTargets();
|
||||
|
@@ -24,6 +24,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
#include "mcusupportsdk.h"
|
||||
#include "mcuhelpers.h"
|
||||
#include "mcukitmanager.h"
|
||||
#include "mcupackage.h"
|
||||
#include "mcusupportconstants.h"
|
||||
@@ -149,7 +150,7 @@ McuAbstractPackage *createFreeRTOSSourcesPackage(const QString &envVar,
|
||||
const FilePath &boardSdkDir,
|
||||
const QString &freeRTOSBoardSdkSubDir)
|
||||
{
|
||||
const QString envVarPrefix = envVar.chopped(int(strlen("_FREERTOS_DIR")));
|
||||
const QString envVarPrefix = removeRtosSuffix(envVar);
|
||||
|
||||
FilePath defaultPath;
|
||||
if (qEnvironmentVariableIsSet(envVar.toLatin1()))
|
||||
@@ -160,8 +161,7 @@ McuAbstractPackage *createFreeRTOSSourcesPackage(const QString &envVar,
|
||||
return new McuPackage(QString::fromLatin1("FreeRTOS Sources (%1)").arg(envVarPrefix),
|
||||
defaultPath,
|
||||
{}, // detection path
|
||||
QString::fromLatin1("FreeRTOSSourcePackage_%1")
|
||||
.arg(envVarPrefix), // settings key
|
||||
QString{Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(envVarPrefix),
|
||||
"FREERTOS_DIR", // cmake var
|
||||
envVar, // env var
|
||||
"https://freertos.org"); // download url
|
||||
|
@@ -36,10 +36,10 @@ namespace McuSupport::Internal {
|
||||
|
||||
constexpr int MAX_COMPATIBILITY_VERSION{1};
|
||||
|
||||
class McuSdkRepository;
|
||||
class McuAbstractPackage;
|
||||
class McuToolChainPackage;
|
||||
class McuSdkRepository;
|
||||
class McuTarget;
|
||||
class McuToolChainPackage;
|
||||
|
||||
namespace Sdk {
|
||||
|
||||
|
@@ -59,7 +59,7 @@ const QString nxp1064FreeRtosEnvVar{"IMXRT1064_FREERTOS_DIR"};
|
||||
const QString nxp1170FreeRtosEnvVar{"EVK_MIMXRT1170_FREERTOS_PATH"};
|
||||
const QString stm32f7FreeRtosEnvVar{"STM32F7_FREERTOS_DIR"};
|
||||
const QString stm32f7{"STM32F7"};
|
||||
const QString nxp1170{"EVK_MIMXRT1170_"};
|
||||
const QString nxp1170{"EVK_MIMXRT1170"};
|
||||
const QString nxp1050{"IMXRT1050"};
|
||||
const QString nxp1064{"IMXRT1064"};
|
||||
const QStringList jsonFiles{armgcc_nxp_1050_json, armgcc_nxp_1064_json};
|
||||
@@ -296,4 +296,22 @@ void McuSupportTest::test_createPackages()
|
||||
QVERIFY(not packages.empty());
|
||||
}
|
||||
|
||||
void McuSupportTest::test_removeRtosSuffix_data()
|
||||
{
|
||||
QTest::addColumn<QString>("freeRtosEnvVar");
|
||||
QTest::addColumn<QString>("expectedEnvVarWithoutSuffix");
|
||||
|
||||
QTest::newRow("nxp1050") << nxp1050FreeRtosEnvVar << nxp1050;
|
||||
QTest::newRow("nxp1064") << nxp1064FreeRtosEnvVar << nxp1064;
|
||||
QTest::newRow("nxp1170") << nxp1170FreeRtosEnvVar << nxp1170;
|
||||
QTest::newRow("stm32f7") << stm32f7FreeRtosEnvVar << stm32f7;
|
||||
}
|
||||
|
||||
void McuSupportTest::test_removeRtosSuffix()
|
||||
{
|
||||
QFETCH(QString, freeRtosEnvVar);
|
||||
QFETCH(QString, expectedEnvVarWithoutSuffix);
|
||||
QCOMPARE(removeRtosSuffix(freeRtosEnvVar), expectedEnvVarWithoutSuffix);
|
||||
}
|
||||
|
||||
} // namespace McuSupport::Internal::Test
|
||||
|
@@ -60,6 +60,8 @@ private slots:
|
||||
void test_createTargetsTheNewWay();
|
||||
void test_createPackages();
|
||||
void test_parseCmakeEntries();
|
||||
void test_removeRtosSuffix_data();
|
||||
void test_removeRtosSuffix();
|
||||
|
||||
private:
|
||||
QVersionNumber currentQulVersion{2, 0};
|
||||
|
Reference in New Issue
Block a user