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 "mcuhelpers.h"
|
||||||
#include "mcutargetdescription.h"
|
#include "mcutargetdescription.h"
|
||||||
|
|
||||||
|
#include <QRegularExpression>
|
||||||
|
|
||||||
namespace McuSupport {
|
namespace McuSupport {
|
||||||
|
|
||||||
Internal::McuTarget::OS deduceOperatingSystem(const Internal::Sdk::McuTargetDescription &desc)
|
Internal::McuTarget::OS deduceOperatingSystem(const Internal::Sdk::McuTargetDescription &desc)
|
||||||
@@ -39,4 +41,11 @@ Internal::McuTarget::OS deduceOperatingSystem(const Internal::Sdk::McuTargetDesc
|
|||||||
return OS::BareMetal;
|
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
|
} //namespace McuSupport
|
||||||
|
@@ -36,5 +36,6 @@ struct McuTargetDescription;
|
|||||||
}
|
}
|
||||||
|
|
||||||
Internal::McuTarget::OS deduceOperatingSystem(const Internal::Sdk::McuTargetDescription &);
|
Internal::McuTarget::OS deduceOperatingSystem(const Internal::Sdk::McuTargetDescription &);
|
||||||
|
QString removeRtosSuffix(const QString &environmentVariable);
|
||||||
|
|
||||||
}; // namespace McuSupport
|
}; // namespace McuSupport
|
||||||
|
@@ -51,8 +51,8 @@ QtcPlugin {
|
|||||||
"mcutargetdescription.h",
|
"mcutargetdescription.h",
|
||||||
"mcukitinformation.cpp",
|
"mcukitinformation.cpp",
|
||||||
"mcukitinformation.h",
|
"mcukitinformation.h",
|
||||||
"mcuhelpers.h",
|
|
||||||
"mcuhelpers.cpp",
|
"mcuhelpers.cpp",
|
||||||
|
"mcuhelpers.h",
|
||||||
]
|
]
|
||||||
|
|
||||||
Group {
|
Group {
|
||||||
|
@@ -51,8 +51,9 @@ namespace Internal {
|
|||||||
|
|
||||||
class McuAbstractPackage;
|
class McuAbstractPackage;
|
||||||
|
|
||||||
struct McuSdkRepository
|
class McuSdkRepository
|
||||||
{
|
{
|
||||||
|
public:
|
||||||
Packages packages;
|
Packages packages;
|
||||||
Targets mcuTargets;
|
Targets mcuTargets;
|
||||||
void deletePackagesAndTargets();
|
void deletePackagesAndTargets();
|
||||||
|
@@ -24,6 +24,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "mcusupportsdk.h"
|
#include "mcusupportsdk.h"
|
||||||
|
#include "mcuhelpers.h"
|
||||||
#include "mcukitmanager.h"
|
#include "mcukitmanager.h"
|
||||||
#include "mcupackage.h"
|
#include "mcupackage.h"
|
||||||
#include "mcusupportconstants.h"
|
#include "mcusupportconstants.h"
|
||||||
@@ -149,7 +150,7 @@ McuAbstractPackage *createFreeRTOSSourcesPackage(const QString &envVar,
|
|||||||
const FilePath &boardSdkDir,
|
const FilePath &boardSdkDir,
|
||||||
const QString &freeRTOSBoardSdkSubDir)
|
const QString &freeRTOSBoardSdkSubDir)
|
||||||
{
|
{
|
||||||
const QString envVarPrefix = envVar.chopped(int(strlen("_FREERTOS_DIR")));
|
const QString envVarPrefix = removeRtosSuffix(envVar);
|
||||||
|
|
||||||
FilePath defaultPath;
|
FilePath defaultPath;
|
||||||
if (qEnvironmentVariableIsSet(envVar.toLatin1()))
|
if (qEnvironmentVariableIsSet(envVar.toLatin1()))
|
||||||
@@ -160,8 +161,7 @@ McuAbstractPackage *createFreeRTOSSourcesPackage(const QString &envVar,
|
|||||||
return new McuPackage(QString::fromLatin1("FreeRTOS Sources (%1)").arg(envVarPrefix),
|
return new McuPackage(QString::fromLatin1("FreeRTOS Sources (%1)").arg(envVarPrefix),
|
||||||
defaultPath,
|
defaultPath,
|
||||||
{}, // detection path
|
{}, // detection path
|
||||||
QString::fromLatin1("FreeRTOSSourcePackage_%1")
|
QString{Constants::SETTINGS_KEY_FREERTOS_PREFIX}.append(envVarPrefix),
|
||||||
.arg(envVarPrefix), // settings key
|
|
||||||
"FREERTOS_DIR", // cmake var
|
"FREERTOS_DIR", // cmake var
|
||||||
envVar, // env var
|
envVar, // env var
|
||||||
"https://freertos.org"); // download url
|
"https://freertos.org"); // download url
|
||||||
|
@@ -36,10 +36,10 @@ namespace McuSupport::Internal {
|
|||||||
|
|
||||||
constexpr int MAX_COMPATIBILITY_VERSION{1};
|
constexpr int MAX_COMPATIBILITY_VERSION{1};
|
||||||
|
|
||||||
class McuSdkRepository;
|
|
||||||
class McuAbstractPackage;
|
class McuAbstractPackage;
|
||||||
class McuToolChainPackage;
|
class McuSdkRepository;
|
||||||
class McuTarget;
|
class McuTarget;
|
||||||
|
class McuToolChainPackage;
|
||||||
|
|
||||||
namespace Sdk {
|
namespace Sdk {
|
||||||
|
|
||||||
|
@@ -59,7 +59,7 @@ const QString nxp1064FreeRtosEnvVar{"IMXRT1064_FREERTOS_DIR"};
|
|||||||
const QString nxp1170FreeRtosEnvVar{"EVK_MIMXRT1170_FREERTOS_PATH"};
|
const QString nxp1170FreeRtosEnvVar{"EVK_MIMXRT1170_FREERTOS_PATH"};
|
||||||
const QString stm32f7FreeRtosEnvVar{"STM32F7_FREERTOS_DIR"};
|
const QString stm32f7FreeRtosEnvVar{"STM32F7_FREERTOS_DIR"};
|
||||||
const QString stm32f7{"STM32F7"};
|
const QString stm32f7{"STM32F7"};
|
||||||
const QString nxp1170{"EVK_MIMXRT1170_"};
|
const QString nxp1170{"EVK_MIMXRT1170"};
|
||||||
const QString nxp1050{"IMXRT1050"};
|
const QString nxp1050{"IMXRT1050"};
|
||||||
const QString nxp1064{"IMXRT1064"};
|
const QString nxp1064{"IMXRT1064"};
|
||||||
const QStringList jsonFiles{armgcc_nxp_1050_json, armgcc_nxp_1064_json};
|
const QStringList jsonFiles{armgcc_nxp_1050_json, armgcc_nxp_1064_json};
|
||||||
@@ -296,4 +296,22 @@ void McuSupportTest::test_createPackages()
|
|||||||
QVERIFY(not packages.empty());
|
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
|
} // namespace McuSupport::Internal::Test
|
||||||
|
@@ -60,6 +60,8 @@ private slots:
|
|||||||
void test_createTargetsTheNewWay();
|
void test_createTargetsTheNewWay();
|
||||||
void test_createPackages();
|
void test_createPackages();
|
||||||
void test_parseCmakeEntries();
|
void test_parseCmakeEntries();
|
||||||
|
void test_removeRtosSuffix_data();
|
||||||
|
void test_removeRtosSuffix();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QVersionNumber currentQulVersion{2, 0};
|
QVersionNumber currentQulVersion{2, 0};
|
||||||
|
Reference in New Issue
Block a user