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:
Piotr Mućko
2022-03-03 17:43:41 +01:00
parent cc885348c7
commit 88342a6bba
8 changed files with 40 additions and 9 deletions

View File

@@ -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

View File

@@ -36,5 +36,6 @@ struct McuTargetDescription;
}
Internal::McuTarget::OS deduceOperatingSystem(const Internal::Sdk::McuTargetDescription &);
QString removeRtosSuffix(const QString &environmentVariable);
}; // namespace McuSupport

View File

@@ -51,8 +51,8 @@ QtcPlugin {
"mcutargetdescription.h",
"mcukitinformation.cpp",
"mcukitinformation.h",
"mcuhelpers.h",
"mcuhelpers.cpp",
"mcuhelpers.h",
]
Group {

View File

@@ -51,8 +51,9 @@ namespace Internal {
class McuAbstractPackage;
struct McuSdkRepository
class McuSdkRepository
{
public:
Packages packages;
Targets mcuTargets;
void deletePackagesAndTargets();

View File

@@ -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

View File

@@ -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 {

View File

@@ -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

View File

@@ -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};