From eb0649ba05ae47985e3d73b78c048ba6ea8382bb Mon Sep 17 00:00:00 2001 From: Daniele Bortolotti Date: Fri, 28 Oct 2022 13:40:41 +0200 Subject: [PATCH] McuSupport: Enable os-specific executable version detection MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently version detection fails in either Linux or Windows based on the content of versionDetection.filePattern in the json kit file. This change enables os-specific filePattern fields: "versionDetection": { "filePattern": { "windows": "bin/arm-none-eabi-g++.exe", "linux": "bin/arm-none-eabi-g++" } "executableArgs": "--version", "regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b" } Simply appending the binary extension with withExecutableSuffix() is less portable and does not reflect the validationPath field. For McuPackageDirectoryEntriesVersionDetector and McuPackageXmlVersionDetector to work correctly, they rely on filePattern not having os-specific fields. Also make getOsSpecificValue and parseVersionDetection static. Change-Id: Ieacf376126043d732eeb5d5a2f4125963022ae76 Reviewed-by: Sivert Krøvel Reviewed-by: Eike Ziller Reviewed-by: --- src/plugins/mcusupport/mcusupportsdk.cpp | 27 ++++++++++--------- .../test/armgcc_ek_ra6m3g_baremetal_json.h | 5 +++- .../test/armgcc_ek_ra6m3g_freertos_json.h | 5 +++- .../test/armgcc_example_baremetal_json.h | 5 +++- .../armgcc_mimxrt1050_evk_baremetal_json.h | 5 +++- .../armgcc_mimxrt1050_evk_freertos_json.h | 5 +++- .../armgcc_mimxrt1060_evk_baremetal_json.h | 5 +++- .../armgcc_mimxrt1064_evk_baremetal_json.h | 5 +++- .../armgcc_mimxrt1064_evk_freertos_json.h | 5 +++- .../armgcc_mimxrt1170_evk_freertos_json.h | 5 +++- ...mgcc_stm32f469i_discovery_baremetal_json.h | 5 +++- ...mgcc_stm32f769i_discovery_baremetal_json.h | 5 +++- ...rmgcc_stm32f769i_discovery_freertos_json.h | 5 +++- ...mgcc_stm32h750b_discovery_baremetal_json.h | 5 +++- .../test/ghs_rh850_d1m1a_baremetal_json.h | 5 +++- .../test/iar_ek_ra6m3g_baremetal_json.h | 5 +++- .../test/iar_ek_ra6m3g_freertos_json.h | 5 +++- .../test/iar_example_baremetal_json.h | 5 +++- .../test/iar_mimxrt1050_evk_baremetal_json.h | 5 +++- .../test/iar_mimxrt1050_evk_freertos_json.h | 5 +++- .../test/iar_mimxrt1060_evk_baremetal_json.h | 5 +++- .../test/iar_mimxrt1064_evk_baremetal_json.h | 5 +++- .../test/iar_mimxrt1064_evk_freertos_json.h | 5 +++- .../test/iar_mimxrt1170_evk_freertos_json.h | 5 +++- .../iar_stm32f469i_discovery_baremetal_json.h | 5 +++- .../iar_stm32f769i_discovery_baremetal_json.h | 5 +++- .../iar_stm32f769i_discovery_freertos_json.h | 5 +++- .../iar_stm32h750b_discovery_baremetal_json.h | 5 +++- .../test/iar_tviic2d6m_baremetal_json.h | 5 +++- src/plugins/mcusupport/test/unittest.cpp | 4 +-- 30 files changed, 128 insertions(+), 43 deletions(-) diff --git a/src/plugins/mcusupport/mcusupportsdk.cpp b/src/plugins/mcusupport/mcusupportsdk.cpp index 76f24206797..dd06240d507 100644 --- a/src/plugins/mcusupport/mcusupportsdk.cpp +++ b/src/plugins/mcusupport/mcusupportsdk.cpp @@ -608,19 +608,7 @@ static FilePaths targetDescriptionFiles(const FilePath &dir) return kitsPath(dir).dirEntries(Utils::FileFilter({"*.json"}, QDir::Files)); } -VersionDetection parseVersionDetection(const QJsonObject &packageEntry) -{ - const QJsonObject versioning = packageEntry.value("versionDetection").toObject(); - return { - versioning["regex"].toString(), - versioning["filePattern"].toString(), - versioning["executableArgs"].toString(), - versioning["xmlElement"].toString(), - versioning["xmlAttribute"].toString(), - }; -} - -QString getOsSpecificValue(const QJsonValue &entry) +static QString getOsSpecificValue(const QJsonValue &entry) { if (entry.isObject()) { //The json entry has os-specific values @@ -630,6 +618,19 @@ QString getOsSpecificValue(const QJsonValue &entry) return entry.toString(); } +static VersionDetection parseVersionDetection(const QJsonObject &packageEntry) +{ + const QJsonObject versioning = packageEntry.value("versionDetection").toObject(); + return { + versioning["regex"].toString(), + getOsSpecificValue(versioning["filePattern"]), + versioning["executableArgs"].toString(), + versioning["xmlElement"].toString(), + versioning["xmlAttribute"].toString(), + }; +} + + static PackageDescription parsePackage(const QJsonObject &cmakeEntry) { const QVariantList versionsVariantList = cmakeEntry["versions"].toArray().toVariantList(); diff --git a/src/plugins/mcusupport/test/armgcc_ek_ra6m3g_baremetal_json.h b/src/plugins/mcusupport/test/armgcc_ek_ra6m3g_baremetal_json.h index fb6a57640a7..6d096d21a09 100644 --- a/src/plugins/mcusupport/test/armgcc_ek_ra6m3g_baremetal_json.h +++ b/src/plugins/mcusupport/test/armgcc_ek_ra6m3g_baremetal_json.h @@ -43,7 +43,10 @@ constexpr auto armgcc_ek_ra6m3g_baremetal_json = R"( "type": "path", "optional": false, "versionDetection": { - "filePattern": "bin/arm-none-eabi-g++", + "filePattern": { + "windows": "bin/arm-none-eabi-g++.exe", + "linux": "bin/arm-none-eabi-g++" + }, "executableArgs": "--version", "regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b" }, diff --git a/src/plugins/mcusupport/test/armgcc_ek_ra6m3g_freertos_json.h b/src/plugins/mcusupport/test/armgcc_ek_ra6m3g_freertos_json.h index 283b79ab21d..531031cbf94 100644 --- a/src/plugins/mcusupport/test/armgcc_ek_ra6m3g_freertos_json.h +++ b/src/plugins/mcusupport/test/armgcc_ek_ra6m3g_freertos_json.h @@ -43,7 +43,10 @@ constexpr auto armgcc_ek_ra6m3g_freertos_json = R"( "type": "path", "optional": false, "versionDetection": { - "filePattern": "bin/arm-none-eabi-g++", + "filePattern": { + "windows": "bin/arm-none-eabi-g++.exe", + "linux": "bin/arm-none-eabi-g++" + }, "executableArgs": "--version", "regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b" }, diff --git a/src/plugins/mcusupport/test/armgcc_example_baremetal_json.h b/src/plugins/mcusupport/test/armgcc_example_baremetal_json.h index e4f10bd54b3..c3e2e7187eb 100644 --- a/src/plugins/mcusupport/test/armgcc_example_baremetal_json.h +++ b/src/plugins/mcusupport/test/armgcc_example_baremetal_json.h @@ -28,7 +28,10 @@ constexpr auto armgcc_example_baremetal_json = R"( "type": "path", "optional": false, "versionDetection": { - "filePattern": "bin/arm-none-eabi-g++", + "filePattern": { + "windows": "bin/arm-none-eabi-g++.exe", + "linux": "bin/arm-none-eabi-g++" + }, "executableArgs": "--version", "regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b" }, diff --git a/src/plugins/mcusupport/test/armgcc_mimxrt1050_evk_baremetal_json.h b/src/plugins/mcusupport/test/armgcc_mimxrt1050_evk_baremetal_json.h index 01ac942a0a5..6b55055beba 100644 --- a/src/plugins/mcusupport/test/armgcc_mimxrt1050_evk_baremetal_json.h +++ b/src/plugins/mcusupport/test/armgcc_mimxrt1050_evk_baremetal_json.h @@ -47,7 +47,10 @@ constexpr auto armgcc_mimxrt1050_evk_baremetal_json = R"( "type": "path", "optional": false, "versionDetection": { - "filePattern": "bin/arm-none-eabi-g++", + "filePattern": { + "windows": "bin/arm-none-eabi-g++.exe", + "linux": "bin/arm-none-eabi-g++" + }, "executableArgs": "--version", "regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b" }, diff --git a/src/plugins/mcusupport/test/armgcc_mimxrt1050_evk_freertos_json.h b/src/plugins/mcusupport/test/armgcc_mimxrt1050_evk_freertos_json.h index 25e696a14d0..4a7da4ccf93 100644 --- a/src/plugins/mcusupport/test/armgcc_mimxrt1050_evk_freertos_json.h +++ b/src/plugins/mcusupport/test/armgcc_mimxrt1050_evk_freertos_json.h @@ -47,7 +47,10 @@ constexpr auto armgcc_mimxrt1050_evk_freertos_json = R"( "type": "path", "optional": false, "versionDetection": { - "filePattern": "bin/arm-none-eabi-g++", + "filePattern": { + "windows": "bin/arm-none-eabi-g++.exe", + "linux": "bin/arm-none-eabi-g++" + }, "executableArgs": "--version", "regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b" }, diff --git a/src/plugins/mcusupport/test/armgcc_mimxrt1060_evk_baremetal_json.h b/src/plugins/mcusupport/test/armgcc_mimxrt1060_evk_baremetal_json.h index e7a7311b1c9..8f0b9e54e24 100644 --- a/src/plugins/mcusupport/test/armgcc_mimxrt1060_evk_baremetal_json.h +++ b/src/plugins/mcusupport/test/armgcc_mimxrt1060_evk_baremetal_json.h @@ -47,7 +47,10 @@ constexpr auto armgcc_mimxrt1060_evk_baremetal_json = R"( "type": "path", "optional": false, "versionDetection": { - "filePattern": "bin/arm-none-eabi-g++", + "filePattern": { + "windows": "bin/arm-none-eabi-g++.exe", + "linux": "bin/arm-none-eabi-g++" + }, "executableArgs": "--version", "regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b" }, diff --git a/src/plugins/mcusupport/test/armgcc_mimxrt1064_evk_baremetal_json.h b/src/plugins/mcusupport/test/armgcc_mimxrt1064_evk_baremetal_json.h index b2d4b7ec406..cdf67a5f6ca 100644 --- a/src/plugins/mcusupport/test/armgcc_mimxrt1064_evk_baremetal_json.h +++ b/src/plugins/mcusupport/test/armgcc_mimxrt1064_evk_baremetal_json.h @@ -47,7 +47,10 @@ constexpr auto armgcc_mimxrt1064_evk_baremetal_json = R"( "type": "path", "optional": false, "versionDetection": { - "filePattern": "bin/arm-none-eabi-g++", + "filePattern": { + "windows": "bin/arm-none-eabi-g++.exe", + "linux": "bin/arm-none-eabi-g++" + }, "executableArgs": "--version", "regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b" }, diff --git a/src/plugins/mcusupport/test/armgcc_mimxrt1064_evk_freertos_json.h b/src/plugins/mcusupport/test/armgcc_mimxrt1064_evk_freertos_json.h index 264ad9c065e..592a84228d1 100644 --- a/src/plugins/mcusupport/test/armgcc_mimxrt1064_evk_freertos_json.h +++ b/src/plugins/mcusupport/test/armgcc_mimxrt1064_evk_freertos_json.h @@ -47,7 +47,10 @@ constexpr auto armgcc_mimxrt1064_evk_freertos_json = R"( "type": "path", "optional": false, "versionDetection": { - "filePattern": "bin/arm-none-eabi-g++", + "filePattern": { + "windows": "bin/arm-none-eabi-g++.exe", + "linux": "bin/arm-none-eabi-g++" + }, "executableArgs": "--version", "regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b" }, diff --git a/src/plugins/mcusupport/test/armgcc_mimxrt1170_evk_freertos_json.h b/src/plugins/mcusupport/test/armgcc_mimxrt1170_evk_freertos_json.h index 8c348011231..b7eb801cd60 100644 --- a/src/plugins/mcusupport/test/armgcc_mimxrt1170_evk_freertos_json.h +++ b/src/plugins/mcusupport/test/armgcc_mimxrt1170_evk_freertos_json.h @@ -47,7 +47,10 @@ constexpr auto armgcc_mimxrt1170_evk_freertos_json = R"( "type": "path", "optional": false, "versionDetection": { - "filePattern": "bin/arm-none-eabi-g++", + "filePattern": { + "windows": "bin/arm-none-eabi-g++.exe", + "linux": "bin/arm-none-eabi-g++" + }, "executableArgs": "--version", "regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b" }, diff --git a/src/plugins/mcusupport/test/armgcc_stm32f469i_discovery_baremetal_json.h b/src/plugins/mcusupport/test/armgcc_stm32f469i_discovery_baremetal_json.h index 452ae4e953c..3b1ef8172f7 100644 --- a/src/plugins/mcusupport/test/armgcc_stm32f469i_discovery_baremetal_json.h +++ b/src/plugins/mcusupport/test/armgcc_stm32f469i_discovery_baremetal_json.h @@ -46,7 +46,10 @@ constexpr auto armgcc_stm32f469i_discovery_baremetal_json = R"( "type": "path", "optional": false, "versionDetection": { - "filePattern": "bin/arm-none-eabi-g++", + "filePattern": { + "windows": "bin/arm-none-eabi-g++.exe", + "linux": "bin/arm-none-eabi-g++" + }, "executableArgs": "--version", "regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b" }, diff --git a/src/plugins/mcusupport/test/armgcc_stm32f769i_discovery_baremetal_json.h b/src/plugins/mcusupport/test/armgcc_stm32f769i_discovery_baremetal_json.h index 9fdb309da14..62171d73334 100644 --- a/src/plugins/mcusupport/test/armgcc_stm32f769i_discovery_baremetal_json.h +++ b/src/plugins/mcusupport/test/armgcc_stm32f769i_discovery_baremetal_json.h @@ -46,7 +46,10 @@ constexpr auto armgcc_stm32f769i_discovery_baremetal_json = R"( "type": "path", "optional": false, "versionDetection": { - "filePattern": "bin/arm-none-eabi-g++", + "filePattern": { + "windows": "bin/arm-none-eabi-g++.exe", + "linux": "bin/arm-none-eabi-g++" + }, "executableArgs": "--version", "regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b" }, diff --git a/src/plugins/mcusupport/test/armgcc_stm32f769i_discovery_freertos_json.h b/src/plugins/mcusupport/test/armgcc_stm32f769i_discovery_freertos_json.h index 249db9497d5..d6e28c6c429 100644 --- a/src/plugins/mcusupport/test/armgcc_stm32f769i_discovery_freertos_json.h +++ b/src/plugins/mcusupport/test/armgcc_stm32f769i_discovery_freertos_json.h @@ -46,7 +46,10 @@ constexpr auto armgcc_stm32f769i_discovery_freertos_json = R"( "type": "path", "optional": false, "versionDetection": { - "filePattern": "bin/arm-none-eabi-g++", + "filePattern": { + "windows": "bin/arm-none-eabi-g++.exe", + "linux": "bin/arm-none-eabi-g++" + }, "executableArgs": "--version", "regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b" }, diff --git a/src/plugins/mcusupport/test/armgcc_stm32h750b_discovery_baremetal_json.h b/src/plugins/mcusupport/test/armgcc_stm32h750b_discovery_baremetal_json.h index 3b5adc3e989..a2819c8cf8a 100644 --- a/src/plugins/mcusupport/test/armgcc_stm32h750b_discovery_baremetal_json.h +++ b/src/plugins/mcusupport/test/armgcc_stm32h750b_discovery_baremetal_json.h @@ -46,7 +46,10 @@ constexpr auto armgcc_stm32h750b_discovery_baremetal_json = R"( "type": "path", "optional": false, "versionDetection": { - "filePattern": "bin/arm-none-eabi-g++", + "filePattern": { + "windows": "bin/arm-none-eabi-g++.exe", + "linux": "bin/arm-none-eabi-g++" + }, "executableArgs": "--version", "regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b" }, diff --git a/src/plugins/mcusupport/test/ghs_rh850_d1m1a_baremetal_json.h b/src/plugins/mcusupport/test/ghs_rh850_d1m1a_baremetal_json.h index 132cf0319e8..e6e32b208e5 100644 --- a/src/plugins/mcusupport/test/ghs_rh850_d1m1a_baremetal_json.h +++ b/src/plugins/mcusupport/test/ghs_rh850_d1m1a_baremetal_json.h @@ -47,7 +47,10 @@ constexpr auto ghs_rh850_d1m1a_baremetal_json = R"( "type": "path", "optional": false, "versionDetection": { - "filePattern": "gversion", + "filePattern": { + "windows": "gversion.exe", + "linux": "gversion" + }, "executableArgs": "-help", "regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b" }, diff --git a/src/plugins/mcusupport/test/iar_ek_ra6m3g_baremetal_json.h b/src/plugins/mcusupport/test/iar_ek_ra6m3g_baremetal_json.h index 0c38725d138..05f26f7cfcf 100644 --- a/src/plugins/mcusupport/test/iar_ek_ra6m3g_baremetal_json.h +++ b/src/plugins/mcusupport/test/iar_ek_ra6m3g_baremetal_json.h @@ -42,7 +42,10 @@ constexpr auto iar_ek_ra6m3g_baremetal_json = R"( "cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR", "type": "path", "versionDetection": { - "filePattern": "bin/iccarm", + "filePattern": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" }, diff --git a/src/plugins/mcusupport/test/iar_ek_ra6m3g_freertos_json.h b/src/plugins/mcusupport/test/iar_ek_ra6m3g_freertos_json.h index d5eda9eab7d..12c827436ab 100644 --- a/src/plugins/mcusupport/test/iar_ek_ra6m3g_freertos_json.h +++ b/src/plugins/mcusupport/test/iar_ek_ra6m3g_freertos_json.h @@ -42,7 +42,10 @@ constexpr auto iar_ek_ra6m3g_freertos_json = R"( "cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR", "type": "path", "versionDetection": { - "filePattern": "bin/iccarm", + "filePattern": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" }, diff --git a/src/plugins/mcusupport/test/iar_example_baremetal_json.h b/src/plugins/mcusupport/test/iar_example_baremetal_json.h index 66e6abde63c..d5e0d9ad2f5 100644 --- a/src/plugins/mcusupport/test/iar_example_baremetal_json.h +++ b/src/plugins/mcusupport/test/iar_example_baremetal_json.h @@ -27,7 +27,10 @@ constexpr auto iar_example_baremetal_json = R"( "cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR", "type": "path", "versionDetection": { - "filePattern": "bin/iccarm", + "filePattern": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" }, diff --git a/src/plugins/mcusupport/test/iar_mimxrt1050_evk_baremetal_json.h b/src/plugins/mcusupport/test/iar_mimxrt1050_evk_baremetal_json.h index 5fe5a089842..795eac73054 100644 --- a/src/plugins/mcusupport/test/iar_mimxrt1050_evk_baremetal_json.h +++ b/src/plugins/mcusupport/test/iar_mimxrt1050_evk_baremetal_json.h @@ -46,7 +46,10 @@ constexpr auto iar_mimxrt1050_evk_baremetal_json = R"( "cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR", "type": "path", "versionDetection": { - "filePattern": "bin/iccarm", + "filePattern": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" }, diff --git a/src/plugins/mcusupport/test/iar_mimxrt1050_evk_freertos_json.h b/src/plugins/mcusupport/test/iar_mimxrt1050_evk_freertos_json.h index 93d23e305a2..7ab260d8563 100644 --- a/src/plugins/mcusupport/test/iar_mimxrt1050_evk_freertos_json.h +++ b/src/plugins/mcusupport/test/iar_mimxrt1050_evk_freertos_json.h @@ -46,7 +46,10 @@ constexpr auto iar_mimxrt1050_evk_freertos_json = R"( "cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR", "type": "path", "versionDetection": { - "filePattern": "bin/iccarm", + "filePattern": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" }, diff --git a/src/plugins/mcusupport/test/iar_mimxrt1060_evk_baremetal_json.h b/src/plugins/mcusupport/test/iar_mimxrt1060_evk_baremetal_json.h index 6600150f5d6..21e5922228b 100644 --- a/src/plugins/mcusupport/test/iar_mimxrt1060_evk_baremetal_json.h +++ b/src/plugins/mcusupport/test/iar_mimxrt1060_evk_baremetal_json.h @@ -46,7 +46,10 @@ constexpr auto iar_mimxrt1060_evk_baremetal_json = R"( "cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR", "type": "path", "versionDetection": { - "filePattern": "bin/iccarm", + "filePattern": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" }, diff --git a/src/plugins/mcusupport/test/iar_mimxrt1064_evk_baremetal_json.h b/src/plugins/mcusupport/test/iar_mimxrt1064_evk_baremetal_json.h index 83d3c23b1a9..628c209f71e 100644 --- a/src/plugins/mcusupport/test/iar_mimxrt1064_evk_baremetal_json.h +++ b/src/plugins/mcusupport/test/iar_mimxrt1064_evk_baremetal_json.h @@ -46,7 +46,10 @@ constexpr auto iar_mimxrt1064_evk_baremetal_json = R"( "cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR", "type": "path", "versionDetection": { - "filePattern": "bin/iccarm", + "filePattern": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" }, diff --git a/src/plugins/mcusupport/test/iar_mimxrt1064_evk_freertos_json.h b/src/plugins/mcusupport/test/iar_mimxrt1064_evk_freertos_json.h index 2f71e359048..e3cdad5b212 100644 --- a/src/plugins/mcusupport/test/iar_mimxrt1064_evk_freertos_json.h +++ b/src/plugins/mcusupport/test/iar_mimxrt1064_evk_freertos_json.h @@ -46,7 +46,10 @@ constexpr auto iar_mimxrt1064_evk_freertos_json = R"( "cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR", "type": "path", "versionDetection": { - "filePattern": "bin/iccarm", + "filePattern": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" }, diff --git a/src/plugins/mcusupport/test/iar_mimxrt1170_evk_freertos_json.h b/src/plugins/mcusupport/test/iar_mimxrt1170_evk_freertos_json.h index 4843a668198..f783ea67bd5 100644 --- a/src/plugins/mcusupport/test/iar_mimxrt1170_evk_freertos_json.h +++ b/src/plugins/mcusupport/test/iar_mimxrt1170_evk_freertos_json.h @@ -46,7 +46,10 @@ constexpr auto iar_mimxrt1170_evk_freertos_json = R"( "cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR", "type": "path", "versionDetection": { - "filePattern": "bin/iccarm", + "filePattern": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" }, diff --git a/src/plugins/mcusupport/test/iar_stm32f469i_discovery_baremetal_json.h b/src/plugins/mcusupport/test/iar_stm32f469i_discovery_baremetal_json.h index 793097d5f6a..af961af20d6 100644 --- a/src/plugins/mcusupport/test/iar_stm32f469i_discovery_baremetal_json.h +++ b/src/plugins/mcusupport/test/iar_stm32f469i_discovery_baremetal_json.h @@ -45,7 +45,10 @@ constexpr auto iar_stm32f469i_discovery_baremetal_json = R"( "cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR", "type": "path", "versionDetection": { - "filePattern": "bin/iccarm", + "filePattern": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" }, diff --git a/src/plugins/mcusupport/test/iar_stm32f769i_discovery_baremetal_json.h b/src/plugins/mcusupport/test/iar_stm32f769i_discovery_baremetal_json.h index 47df7469ab5..4b7c3fb8223 100644 --- a/src/plugins/mcusupport/test/iar_stm32f769i_discovery_baremetal_json.h +++ b/src/plugins/mcusupport/test/iar_stm32f769i_discovery_baremetal_json.h @@ -45,7 +45,10 @@ constexpr auto iar_stm32f769i_discovery_baremetal_json = R"( "cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR", "type": "path", "versionDetection": { - "filePattern": "bin/iccarm", + "filePattern": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" }, diff --git a/src/plugins/mcusupport/test/iar_stm32f769i_discovery_freertos_json.h b/src/plugins/mcusupport/test/iar_stm32f769i_discovery_freertos_json.h index 71181fdca5b..198d008be81 100644 --- a/src/plugins/mcusupport/test/iar_stm32f769i_discovery_freertos_json.h +++ b/src/plugins/mcusupport/test/iar_stm32f769i_discovery_freertos_json.h @@ -45,7 +45,10 @@ constexpr auto iar_stm32f769i_discovery_freertos_json = R"( "cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR", "type": "path", "versionDetection": { - "filePattern": "bin/iccarm", + "filePattern": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" }, diff --git a/src/plugins/mcusupport/test/iar_stm32h750b_discovery_baremetal_json.h b/src/plugins/mcusupport/test/iar_stm32h750b_discovery_baremetal_json.h index 9c657ab8cc6..cec5412f71e 100644 --- a/src/plugins/mcusupport/test/iar_stm32h750b_discovery_baremetal_json.h +++ b/src/plugins/mcusupport/test/iar_stm32h750b_discovery_baremetal_json.h @@ -45,7 +45,10 @@ constexpr auto iar_stm32h750b_discovery_baremetal_json = R"( "cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR", "type": "path", "versionDetection": { - "filePattern": "bin/iccarm", + "filePattern": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" }, diff --git a/src/plugins/mcusupport/test/iar_tviic2d6m_baremetal_json.h b/src/plugins/mcusupport/test/iar_tviic2d6m_baremetal_json.h index 29c391e8db3..a5770bdef18 100644 --- a/src/plugins/mcusupport/test/iar_tviic2d6m_baremetal_json.h +++ b/src/plugins/mcusupport/test/iar_tviic2d6m_baremetal_json.h @@ -38,7 +38,10 @@ constexpr auto iar_tviic2d6m_baremetal_json = R"( "cmakeVar": "QUL_TARGET_TOOLCHAIN_DIR", "type": "path", "versionDetection": { - "filePattern": "bin/iccarm", + "filePattern": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" }, diff --git a/src/plugins/mcusupport/test/unittest.cpp b/src/plugins/mcusupport/test/unittest.cpp index ca28f925bb6..887ad6e4cf8 100644 --- a/src/plugins/mcusupport/test/unittest.cpp +++ b/src/plugins/mcusupport/test/unittest.cpp @@ -80,7 +80,7 @@ const char armGccDir[]{"/opt/armgcc"}; const char armGccDirectorySetting[]{"GNUArmEmbeddedToolchain"}; const char armGccEnvVar[]{"ARMGCC_DIR"}; const char armGccLabel[]{"GNU Arm Embedded Toolchain"}; -const char armGccSuffix[]{"bin/arm-none-eabi-g++"}; +const QString armGccSuffix{HostOsInfo::withExecutableSuffix("bin/arm-none-eabi-g++")}; const char armGccToolchainFilePath[]{"/opt/qtformcu/2.2/lib/cmake/Qul/toolchain/armgcc.cmake"}; const char armGccToolchainFileUnexpandedPath[]{"%{Qul_ROOT}/lib/cmake/Qul/toolchain/armgcc.cmake"}; const char armGccVersion[]{"10.3.1"}; @@ -1245,7 +1245,7 @@ void McuSupportTest::test_passExecutableVersionDetectorToToolchainPackage_data() << armGccVersionDetectionRegex; QTest::newRow("iar_stm32f469i_discovery_baremetal_json") - << iar_stm32f469i_discovery_baremetal_json << QString{"bin/iccarm"} << version + << iar_stm32f469i_discovery_baremetal_json << HostOsInfo::withExecutableSuffix("bin/iccarm") << version << iarVersionDetectionRegex; }