diff --git a/src/plugins/mcusupport/mcusupportsdk.cpp b/src/plugins/mcusupport/mcusupportsdk.cpp index 04ce9a38770..cea595d2d89 100644 --- a/src/plugins/mcusupport/mcusupportsdk.cpp +++ b/src/plugins/mcusupport/mcusupportsdk.cpp @@ -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), diff --git a/src/plugins/mcusupport/test/unittest.cpp b/src/plugins/mcusupport/test/unittest.cpp index 8b34b95951c..0e441a2d60b 100644 --- a/src/plugins/mcusupport/test/unittest.cpp +++ b/src/plugins/mcusupport/test/unittest.cpp @@ -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 diff --git a/src/plugins/mcusupport/test/unittest.h b/src/plugins/mcusupport/test/unittest.h index 36b835c6e7d..732d636f3ac 100644 --- a/src/plugins/mcusupport/test/unittest.h +++ b/src/plugins/mcusupport/test/unittest.h @@ -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};