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) {
|
||||
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(),
|
||||
cmakeEntry["envVar"].toString(),
|
||||
cmakeEntry["cmakeVar"].toString(),
|
||||
cmakeEntry["description"].toString(),
|
||||
cmakeEntry["setting"].toString(),
|
||||
FilePath::fromUserInput(cmakeEntry["defaultValue"].toString()),
|
||||
FilePath::fromUserInput(defaultPathString),
|
||||
FilePath::fromUserInput(cmakeEntry["validation"].toString()),
|
||||
versions,
|
||||
parseVersionDetection(cmakeEntry),
|
||||
|
||||
@@ -1444,4 +1444,14 @@ void McuSupportTest::test_legacy_createThirdPartyPackage()
|
||||
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
|
||||
|
||||
@@ -95,6 +95,8 @@ private slots:
|
||||
void test_legacy_createThirdPartyPackage_data();
|
||||
void test_legacy_createThirdPartyPackage();
|
||||
|
||||
void test_defaultValueForEachOperationSystem();
|
||||
|
||||
private:
|
||||
QVersionNumber currentQulVersion{2, 0};
|
||||
PackageMock *freeRtosPackage{new PackageMock};
|
||||
|
||||
Reference in New Issue
Block a user