forked from qt-creator/qt-creator
McuSupport: support reading packages defaultValues depending on OS
default values can vary between windows and linux so when it is the case a json object can be specified to describe the default values for both. Change-Id: Ifd3e4225ba0e1b1760f93ecea9cfafa4545c3404 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Piotr Mućko <piotr.mucko@qt.io> Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -629,12 +629,23 @@ static PackageDescription parsePackage(const QJsonObject &cmakeEntry)
|
|||||||
[&](const QVariant &version) {
|
[&](const QVariant &version) {
|
||||||
return version.toString();
|
return version.toString();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//Parse the default value depending on the operating system
|
||||||
|
QString defaultPathString;
|
||||||
|
if (cmakeEntry["defaultValue"].isObject())
|
||||||
|
defaultPathString
|
||||||
|
= cmakeEntry["defaultValue"]
|
||||||
|
.toObject()[HostOsInfo::isWindowsHost() ? QString("windows") : QString("unix")]
|
||||||
|
.toString("");
|
||||||
|
else
|
||||||
|
defaultPathString = cmakeEntry["defaultValue"].toString();
|
||||||
|
|
||||||
return {cmakeEntry["label"].toString(),
|
return {cmakeEntry["label"].toString(),
|
||||||
cmakeEntry["envVar"].toString(),
|
cmakeEntry["envVar"].toString(),
|
||||||
cmakeEntry["cmakeVar"].toString(),
|
cmakeEntry["cmakeVar"].toString(),
|
||||||
cmakeEntry["description"].toString(),
|
cmakeEntry["description"].toString(),
|
||||||
cmakeEntry["setting"].toString(),
|
cmakeEntry["setting"].toString(),
|
||||||
FilePath::fromUserInput(cmakeEntry["defaultValue"].toString()),
|
FilePath::fromUserInput(defaultPathString),
|
||||||
FilePath::fromUserInput(cmakeEntry["validation"].toString()),
|
FilePath::fromUserInput(cmakeEntry["validation"].toString()),
|
||||||
versions,
|
versions,
|
||||||
parseVersionDetection(cmakeEntry),
|
parseVersionDetection(cmakeEntry),
|
||||||
|
|||||||
@@ -1444,4 +1444,14 @@ void McuSupportTest::test_legacy_createThirdPartyPackage()
|
|||||||
QVERIFY(qunsetenv(envVar.toLocal8Bit()));
|
QVERIFY(qunsetenv(envVar.toLocal8Bit()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void McuSupportTest::test_defaultValueForEachOperationSystem()
|
||||||
|
{
|
||||||
|
const auto packageDescription = parseDescriptionJson(armgcc_mimxrt1050_evk_freertos_json);
|
||||||
|
auto default_path_entry = packageDescription.platform.entries[0].defaultPath.toString();
|
||||||
|
|
||||||
|
if (HostOsInfo::isWindowsHost())
|
||||||
|
QCOMPARE(QString("%{Env:ROOT}/nxp/MCUXpressoIDE*"), default_path_entry);
|
||||||
|
else
|
||||||
|
QCOMPARE(QString("/usr/local/mcuxpressoide"), default_path_entry);
|
||||||
|
};
|
||||||
} // namespace McuSupport::Internal::Test
|
} // namespace McuSupport::Internal::Test
|
||||||
|
|||||||
@@ -95,6 +95,8 @@ private slots:
|
|||||||
void test_legacy_createThirdPartyPackage_data();
|
void test_legacy_createThirdPartyPackage_data();
|
||||||
void test_legacy_createThirdPartyPackage();
|
void test_legacy_createThirdPartyPackage();
|
||||||
|
|
||||||
|
void test_defaultValueForEachOperationSystem();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QVersionNumber currentQulVersion{2, 0};
|
QVersionNumber currentQulVersion{2, 0};
|
||||||
PackageMock *freeRtosPackage{new PackageMock};
|
PackageMock *freeRtosPackage{new PackageMock};
|
||||||
|
|||||||
Reference in New Issue
Block a user