From b1a3e136b618612c2bc60eee5ca0adcf542ba18b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sivert=20Kr=C3=B8vel?= Date: Tue, 18 Oct 2022 14:51:42 +0200 Subject: [PATCH] McuSupport: Add handling of os-specific validation paths Before the refactoring, the various third party packages had detection paths set to facilitate picking the correct subdirectory in QtCreator. Adding these paths to the JSONs prompts hints in the Devices>MCU UI to which path to enter, and prevents the user from picking the wrong path Since the paths might vary based on the host-os, it is necessary to enable parsing this from JSONs, similar to how the "defaultValue" is handled. The "detectionPath" entry can either be an object with separate values in fields named "windows" and "linux", or a string. Change-Id: I813affe856fe73f6cf34ea75850500b49a1b2b6a Reviewed-by: Rainer Keller Reviewed-by: Kwangsub Kim Reviewed-by: Reviewed-by: hjk Reviewed-by: Yasser Grimes --- src/plugins/mcusupport/mcusupportsdk.cpp | 26 ++++++++------- src/plugins/mcusupport/mcutargetdescription.h | 2 +- src/plugins/mcusupport/mcutargetfactory.cpp | 6 ++-- .../test/armgcc_ek_ra6m3g_baremetal_json.h | 6 +++- .../test/armgcc_ek_ra6m3g_freertos_json.h | 8 +++-- .../test/armgcc_example_baremetal_json.h | 4 +++ .../armgcc_mimxrt1050_evk_baremetal_json.h | 11 +++++-- .../armgcc_mimxrt1050_evk_freertos_json.h | 13 +++++--- .../armgcc_mimxrt1060_evk_baremetal_json.h | 10 +++++- .../armgcc_mimxrt1064_evk_baremetal_json.h | 11 +++++-- .../armgcc_mimxrt1064_evk_freertos_json.h | 13 +++++--- .../armgcc_mimxrt1170_evk_freertos_json.h | 13 +++++--- ...mgcc_stm32f469i_discovery_baremetal_json.h | 10 +++++- ...mgcc_stm32f769i_discovery_baremetal_json.h | 10 +++++- ...rmgcc_stm32f769i_discovery_freertos_json.h | 12 +++++-- ...mgcc_stm32h750b_discovery_baremetal_json.h | 10 +++++- src/plugins/mcusupport/test/errors_json.h | 2 +- .../test/ghs_rh850_d1m1a_baremetal_json.h | 6 +++- .../test/iar_ek_ra6m3g_baremetal_json.h | 9 +++-- .../test/iar_ek_ra6m3g_freertos_json.h | 11 +++++-- .../test/iar_example_baremetal_json.h | 7 +++- .../test/iar_mimxrt1050_evk_baremetal_json.h | 14 +++++--- .../test/iar_mimxrt1050_evk_freertos_json.h | 16 ++++++--- .../test/iar_mimxrt1060_evk_baremetal_json.h | 14 +++++--- .../test/iar_mimxrt1064_evk_baremetal_json.h | 14 +++++--- .../test/iar_mimxrt1064_evk_freertos_json.h | 16 ++++++--- .../test/iar_mimxrt1170_evk_freertos_json.h | 16 ++++++--- .../iar_stm32f469i_discovery_baremetal_json.h | 13 ++++++-- .../iar_stm32f769i_discovery_baremetal_json.h | 13 ++++++-- .../iar_stm32f769i_discovery_freertos_json.h | 15 +++++++-- .../iar_stm32h750b_discovery_baremetal_json.h | 13 ++++++-- .../test/iar_tviic2d6m_baremetal_json.h | 4 ++- src/plugins/mcusupport/test/unittest.cpp | 33 ++++++++++++++----- src/plugins/mcusupport/test/unittest.h | 2 +- 34 files changed, 287 insertions(+), 96 deletions(-) diff --git a/src/plugins/mcusupport/mcusupportsdk.cpp b/src/plugins/mcusupport/mcusupportsdk.cpp index cd12a616138..83655ab34fb 100644 --- a/src/plugins/mcusupport/mcusupportsdk.cpp +++ b/src/plugins/mcusupport/mcusupportsdk.cpp @@ -368,8 +368,8 @@ McuPackagePtr createStm32CubeProgrammerPackage(const SettingsHandler::Ptr &setti FilePath defaultPath = {}; const FilePath detectionPath = FilePath::fromUserInput( - QLatin1String(Utils::HostOsInfo::isWindowsHost() ? "/bin/STM32_Programmer_CLI.exe" - : "/bin/STM32_Programmer.sh")); + QLatin1String(Utils::HostOsInfo::isWindowsHost() ? "bin/STM32_Programmer_CLI.exe" + : "bin/STM32_Programmer.sh")); return McuPackagePtr{ new McuPackage(settingsHandler, @@ -617,6 +617,16 @@ VersionDetection parseVersionDetection(const QJsonObject &packageEntry) }; } +QString getOsSpecificValue(const QJsonValue &entry) +{ + if (entry.isObject()) { + //The json entry has os-specific values + return entry[HostOsInfo::isWindowsHost() ? QString("windows") : QString("linux")].toString(); + } + //The entry does not have os-specific values + return entry.toString(); +} + static PackageDescription parsePackage(const QJsonObject &cmakeEntry) { const QVariantList versionsVariantList = cmakeEntry["versions"].toArray().toVariantList(); @@ -626,14 +636,8 @@ static PackageDescription parsePackage(const QJsonObject &cmakeEntry) }); //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(); + QString defaultPathString = getOsSpecificValue(cmakeEntry["defaultValue"]); + QString detectionPathString = getOsSpecificValue(cmakeEntry["detectionPath"]); return {cmakeEntry["label"].toString(), cmakeEntry["envVar"].toString(), @@ -641,7 +645,7 @@ static PackageDescription parsePackage(const QJsonObject &cmakeEntry) cmakeEntry["description"].toString(), cmakeEntry["setting"].toString(), FilePath::fromUserInput(defaultPathString), - FilePath::fromUserInput(cmakeEntry["validation"].toString()), + FilePath::fromUserInput(detectionPathString), versions, parseVersionDetection(cmakeEntry), cmakeEntry["addToSystemPath"].toBool()}; diff --git a/src/plugins/mcusupport/mcutargetdescription.h b/src/plugins/mcusupport/mcutargetdescription.h index 8dd510af81c..3b811e5a034 100644 --- a/src/plugins/mcusupport/mcutargetdescription.h +++ b/src/plugins/mcusupport/mcutargetdescription.h @@ -29,7 +29,7 @@ struct PackageDescription QString description; QString setting; Utils::FilePath defaultPath; - Utils::FilePath validationPath; + Utils::FilePath detectionPath; QStringList versions; VersionDetection versionDetection; bool shouldAddToSystemPath; diff --git a/src/plugins/mcusupport/mcutargetfactory.cpp b/src/plugins/mcusupport/mcutargetfactory.cpp index b7a8cffd054..00a81450274 100644 --- a/src/plugins/mcusupport/mcutargetfactory.cpp +++ b/src/plugins/mcusupport/mcutargetfactory.cpp @@ -131,7 +131,7 @@ McuPackagePtr McuTargetFactory::createPackage(const PackageDescription &pkgDesc) return McuPackagePtr{new McuPackage{settingsHandler, pkgDesc.label, pkgDesc.defaultPath, - pkgDesc.validationPath, + pkgDesc.detectionPath, pkgDesc.setting, pkgDesc.cmakeVar, pkgDesc.envVar, @@ -166,7 +166,7 @@ McuToolChainPackage *McuTargetFactory::createToolchain( return new McuToolChainPackage{settingsHandler, compilerDescription.label, compilerDescription.defaultPath, - compilerDescription.validationPath, + compilerDescription.detectionPath, {}, toolchainType, toolchain.versions, @@ -206,7 +206,7 @@ McuToolChainPackage *McuTargetFactory::createToolchain( return new McuToolChainPackage{settingsHandler, compilerDescription.label, compilerDescription.defaultPath, - compilerDescription.validationPath, + compilerDescription.detectionPath, compilerDescription.setting, toolchainType, toolchain.versions, 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 92b3c733dab..479074d01d8 100644 --- a/src/plugins/mcusupport/test/armgcc_ek_ra6m3g_baremetal_json.h +++ b/src/plugins/mcusupport/test/armgcc_ek_ra6m3g_baremetal_json.h @@ -22,7 +22,7 @@ constexpr auto armgcc_ek_ra6m3g_baremetal_json = R"( "type": "path", "defaultValue": { "windows": "%{Env:PROGRAMSANDFILES}/SEGGER/JLink", - "unix": "/opt/SEGGER/JLink" + "linux": "/opt/SEGGER/JLink" }, "optional": true, "addToSystemPath": true @@ -46,6 +46,10 @@ constexpr auto armgcc_ek_ra6m3g_baremetal_json = R"( "filePattern": "bin/arm-none-eabi-g++", "executableArgs": "--version", "regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b" + }, + "detectionPath": { + "windows": "bin/arm-none-eabi-g++.exe", + "linux": "bin/arm-none-eabi-g++" } }, "file": { 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 e347828d093..578f3071e05 100644 --- a/src/plugins/mcusupport/test/armgcc_ek_ra6m3g_freertos_json.h +++ b/src/plugins/mcusupport/test/armgcc_ek_ra6m3g_freertos_json.h @@ -22,7 +22,7 @@ constexpr auto armgcc_ek_ra6m3g_freertos_json = R"( "type": "path", "defaultValue": { "windows": "%{Env:PROGRAMSANDFILES}/SEGGER/JLink", - "unix": "/opt/SEGGER/JLink" + "linux": "/opt/SEGGER/JLink" }, "optional": true, "addToSystemPath": true @@ -46,6 +46,10 @@ constexpr auto armgcc_ek_ra6m3g_freertos_json = R"( "filePattern": "bin/arm-none-eabi-g++", "executableArgs": "--version", "regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b" + }, + "detectionPath": { + "windows": "bin/arm-none-eabi-g++.exe", + "linux": "bin/arm-none-eabi-g++" } }, "file": { @@ -74,7 +78,7 @@ constexpr auto armgcc_ek_ra6m3g_freertos_json = R"( "label": "FreeRTOS SDK for EK-RA6M3G", "cmakeVar": "FREERTOS_DIR", "defaultValue": "%{Qul_ROOT}/platform/boards/renesas/ek-ra6m3g-common/3rdparty/freertos", - "validation": "tasks.c", + "detectionPath": "tasks.c", "type": "path", "optional": false } diff --git a/src/plugins/mcusupport/test/armgcc_example_baremetal_json.h b/src/plugins/mcusupport/test/armgcc_example_baremetal_json.h index 0e1bc9ca461..a72af967c6e 100644 --- a/src/plugins/mcusupport/test/armgcc_example_baremetal_json.h +++ b/src/plugins/mcusupport/test/armgcc_example_baremetal_json.h @@ -31,6 +31,10 @@ constexpr auto armgcc_example_baremetal_json = R"( "filePattern": "bin/arm-none-eabi-g++", "executableArgs": "--version", "regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b" + }, + "detectionPath": { + "windows": "bin/arm-none-eabi-g++.exe", + "linux": "bin/arm-none-eabi-g++" } }, "file": { 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 a6a6fc2f796..21e154cbde1 100644 --- a/src/plugins/mcusupport/test/armgcc_mimxrt1050_evk_baremetal_json.h +++ b/src/plugins/mcusupport/test/armgcc_mimxrt1050_evk_baremetal_json.h @@ -22,10 +22,11 @@ constexpr auto armgcc_mimxrt1050_evk_baremetal_json = R"( "setting": "MCUXpressoIDE", "defaultValue": { "windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*", - "unix": "/usr/local/mcuxpressoide/" + "linux": "/usr/local/mcuxpressoide/" }, - "versionDetection": { - "filePattern": "ide/binaries/crt_emu_cm_redlink" + "detectionPath": { + "windows": "ide/binaries/crt_emu_cm_redlink.exe", + "linux": "ide/binaries/crt_emu_cm_redlink" }, "optional": false, "addToSystemPath": true @@ -49,6 +50,10 @@ constexpr auto armgcc_mimxrt1050_evk_baremetal_json = R"( "filePattern": "bin/arm-none-eabi-g++", "executableArgs": "--version", "regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b" + }, + "detectionPath": { + "windows": "bin/arm-none-eabi-g++.exe", + "linux": "bin/arm-none-eabi-g++" } }, "file": { 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 1d3eb8eeb23..b366a3f0167 100644 --- a/src/plugins/mcusupport/test/armgcc_mimxrt1050_evk_freertos_json.h +++ b/src/plugins/mcusupport/test/armgcc_mimxrt1050_evk_freertos_json.h @@ -22,10 +22,11 @@ constexpr auto armgcc_mimxrt1050_evk_freertos_json = R"( "setting": "MCUXpressoIDE", "defaultValue": { "windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*", - "unix": "/usr/local/mcuxpressoide/" + "linux": "/usr/local/mcuxpressoide/" }, - "versionDetection": { - "filePattern": "ide/binaries/crt_emu_cm_redlink" + "detectionPath": { + "windows": "ide/binaries/crt_emu_cm_redlink.exe", + "linux": "ide/binaries/crt_emu_cm_redlink" }, "optional": false, "addToSystemPath": true @@ -49,6 +50,10 @@ constexpr auto armgcc_mimxrt1050_evk_freertos_json = R"( "filePattern": "bin/arm-none-eabi-g++", "executableArgs": "--version", "regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b" + }, + "detectionPath": { + "windows": "bin/arm-none-eabi-g++.exe", + "linux": "bin/arm-none-eabi-g++" } }, "file": { @@ -80,7 +85,7 @@ constexpr auto armgcc_mimxrt1050_evk_freertos_json = R"( "freeRTOS": { "cmakeVar": "FREERTOS_DIR", "defaultValue": "%{QUL_BOARD_SDK_DIR}/rtos/freertos/freertos_kernel", - "validation": "tasks.c", + "detectionPath": "tasks.c", "envVar": "IMXRT1050_FREERTOS_DIR", "label": "FreeRTOS SDK for MIMXRT1050-EVK", "optional": false, 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 f8a164cdf33..efe74d094e7 100644 --- a/src/plugins/mcusupport/test/armgcc_mimxrt1060_evk_baremetal_json.h +++ b/src/plugins/mcusupport/test/armgcc_mimxrt1060_evk_baremetal_json.h @@ -21,7 +21,11 @@ constexpr auto armgcc_mimxrt1060_evk_baremetal_json = R"( "cmakeVar": "MCUXPRESSO_IDE_PATH", "defaultValue": { "windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*", - "unix": "/usr/local/mcuxpressoide/" + "linux": "/usr/local/mcuxpressoide/" + }, + "detectionPath": { + "windows": "ide/binaries/crt_emu_cm_redlink.exe", + "linux": "ide/binaries/crt_emu_cm_redlink" }, "optional": false, "addToSystemPath": true @@ -45,6 +49,10 @@ constexpr auto armgcc_mimxrt1060_evk_baremetal_json = R"( "filePattern": "bin/arm-none-eabi-g++", "executableArgs": "--version", "regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b" + }, + "detectionPath": { + "windows": "bin/arm-none-eabi-g++.exe", + "linux": "bin/arm-none-eabi-g++" } }, "file": { 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 21d760fb13e..e8c71e5292d 100644 --- a/src/plugins/mcusupport/test/armgcc_mimxrt1064_evk_baremetal_json.h +++ b/src/plugins/mcusupport/test/armgcc_mimxrt1064_evk_baremetal_json.h @@ -22,10 +22,11 @@ constexpr auto armgcc_mimxrt1064_evk_baremetal_json = R"( "setting": "MCUXpressoIDE", "defaultValue": { "windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*", - "unix": "/usr/local/mcuxpressoide/" + "linux": "/usr/local/mcuxpressoide/" }, - "versionDetection": { - "filePattern": "ide/binaries/crt_emu_cm_redlink" + "detectionPath": { + "windows": "ide/binaries/crt_emu_cm_redlink.exe", + "linux": "ide/binaries/crt_emu_cm_redlink" }, "optional": false, "addToSystemPath": true @@ -49,6 +50,10 @@ constexpr auto armgcc_mimxrt1064_evk_baremetal_json = R"( "filePattern": "bin/arm-none-eabi-g++", "executableArgs": "--version", "regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b" + }, + "detectionPath": { + "windows": "bin/arm-none-eabi-g++.exe", + "linux": "bin/arm-none-eabi-g++" } }, "file": { 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 e0b6ae8db10..138a7a56eb7 100644 --- a/src/plugins/mcusupport/test/armgcc_mimxrt1064_evk_freertos_json.h +++ b/src/plugins/mcusupport/test/armgcc_mimxrt1064_evk_freertos_json.h @@ -22,10 +22,11 @@ constexpr auto armgcc_mimxrt1064_evk_freertos_json = R"( "setting": "MCUXpressoIDE", "defaultValue": { "windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*", - "unix": "/usr/local/mcuxpressoide/" + "linux": "/usr/local/mcuxpressoide/" }, - "versionDetection": { - "filePattern": "ide/binaries/crt_emu_cm_redlink" + "detectionPath": { + "windows": "ide/binaries/crt_emu_cm_redlink.exe", + "linux": "ide/binaries/crt_emu_cm_redlink" }, "optional": false, "addToSystemPath": true @@ -49,6 +50,10 @@ constexpr auto armgcc_mimxrt1064_evk_freertos_json = R"( "filePattern": "bin/arm-none-eabi-g++", "executableArgs": "--version", "regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b" + }, + "detectionPath": { + "windows": "bin/arm-none-eabi-g++.exe", + "linux": "bin/arm-none-eabi-g++" } }, "file": { @@ -80,7 +85,7 @@ constexpr auto armgcc_mimxrt1064_evk_freertos_json = R"( "freeRTOS": { "cmakeVar": "FREERTOS_DIR", "defaultValue": "%{QUL_BOARD_SDK_DIR}/rtos/freertos/freertos_kernel", - "validation": "tasks.c", + "detectionPath": "tasks.c", "envVar": "IMXRT1064_FREERTOS_DIR", "label": "FreeRTOS SDK for MIMXRT1064-EVK", "optional": false, 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 23407137161..5aab5105bcb 100644 --- a/src/plugins/mcusupport/test/armgcc_mimxrt1170_evk_freertos_json.h +++ b/src/plugins/mcusupport/test/armgcc_mimxrt1170_evk_freertos_json.h @@ -22,10 +22,11 @@ constexpr auto armgcc_mimxrt1170_evk_freertos_json = R"( "setting": "MCUXpressoIDE", "defaultValue": { "windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*", - "unix": "/usr/local/mcuxpressoide/" + "linux": "/usr/local/mcuxpressoide/" }, - "versionDetection": { - "filePattern": "ide/binaries/crt_emu_cm_redlink" + "detectionPath": { + "windows": "ide/binaries/crt_emu_cm_redlink.exe", + "linux": "ide/binaries/crt_emu_cm_redlink" }, "optional": false, "addToSystemPath": true @@ -49,6 +50,10 @@ constexpr auto armgcc_mimxrt1170_evk_freertos_json = R"( "filePattern": "bin/arm-none-eabi-g++", "executableArgs": "--version", "regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b" + }, + "detectionPath": { + "windows": "bin/arm-none-eabi-g++.exe", + "linux": "bin/arm-none-eabi-g++" } }, "file": { @@ -81,7 +86,7 @@ constexpr auto armgcc_mimxrt1170_evk_freertos_json = R"( "envVar": "EVK_MIMXRT1170_FREERTOS_PATH", "label": "FreeRTOS SDK for MIMXRT1170-EVK", "defaultValue": "%{QUL_BOARD_SDK_DIR}/rtos/freertos/freertos_kernel", - "validation": "tasks.c", + "detectionPath": "tasks.c", "type": "path", "optional": false } 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 27f8a85d96d..4d945ededc3 100644 --- a/src/plugins/mcusupport/test/armgcc_stm32f469i_discovery_baremetal_json.h +++ b/src/plugins/mcusupport/test/armgcc_stm32f469i_discovery_baremetal_json.h @@ -21,7 +21,11 @@ constexpr auto armgcc_stm32f469i_discovery_baremetal_json = R"( "setting": "Stm32CubeProgrammer", "defaultValue": { "windows": "%{Env:PROGRAMSANDFILES}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/", - "unix": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/" + "linux": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/" + }, + "detectionPath": { + "windows": "bin/STM32_Programmer_CLI.exe", + "linux": "bin/STM32_Programmer.sh" }, "optional": false, "addToSystemPath": true @@ -45,6 +49,10 @@ constexpr auto armgcc_stm32f469i_discovery_baremetal_json = R"( "filePattern": "bin/arm-none-eabi-g++", "executableArgs": "--version", "regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b" + }, + "detectionPath": { + "windows": "bin/arm-none-eabi-g++.exe", + "linux": "bin/arm-none-eabi-g++" } }, "file": { 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 405c25f934a..a748335707b 100644 --- a/src/plugins/mcusupport/test/armgcc_stm32f769i_discovery_baremetal_json.h +++ b/src/plugins/mcusupport/test/armgcc_stm32f769i_discovery_baremetal_json.h @@ -21,7 +21,11 @@ constexpr auto armgcc_stm32f769i_discovery_baremetal_json = R"( "setting": "Stm32CubeProgrammer", "defaultValue": { "windows": "%{Env:PROGRAMSANDFILES}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/", - "unix": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/" + "linux": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/" + }, + "detectionPath": { + "windows": "bin/STM32_Programmer_CLI.exe", + "linux": "bin/STM32_Programmer.sh" }, "optional": false, "addToSystemPath": true @@ -45,6 +49,10 @@ constexpr auto armgcc_stm32f769i_discovery_baremetal_json = R"( "filePattern": "bin/arm-none-eabi-g++", "executableArgs": "--version", "regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b" + }, + "detectionPath": { + "windows": "bin/arm-none-eabi-g++.exe", + "linux": "bin/arm-none-eabi-g++" } }, "file": { 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 c061bd19e8b..3d3acd05e07 100644 --- a/src/plugins/mcusupport/test/armgcc_stm32f769i_discovery_freertos_json.h +++ b/src/plugins/mcusupport/test/armgcc_stm32f769i_discovery_freertos_json.h @@ -21,7 +21,11 @@ constexpr auto armgcc_stm32f769i_discovery_freertos_json = R"( "setting": "Stm32CubeProgrammer", "defaultValue": { "windows": "%{Env:PROGRAMSANDFILES}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/", - "unix": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/" + "linux": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/" + }, + "detectionPath": { + "windows": "bin/STM32_Programmer_CLI.exe", + "linux": "bin/STM32_Programmer.sh" }, "optional": false, "addToSystemPath": true @@ -45,6 +49,10 @@ constexpr auto armgcc_stm32f769i_discovery_freertos_json = R"( "filePattern": "bin/arm-none-eabi-g++", "executableArgs": "--version", "regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b" + }, + "detectionPath": { + "windows": "bin/arm-none-eabi-g++.exe", + "linux": "bin/arm-none-eabi-g++" } }, "file": { @@ -78,7 +86,7 @@ constexpr auto armgcc_stm32f769i_discovery_freertos_json = R"( "label": "FreeRTOS SDK for STM32F769I-Discovery", "cmakeVar": "FREERTOS_DIR", "defaultValue": "%{QUL_BOARD_SDK_DIR}/Middlewares/Third_Party/FreeRTOS/Source", - "validation": "tasks.c", + "detectionPath": "tasks.c", "type": "path", "setting": "FreeRTOSSourcePackage_STM32F7", "optional": false 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 66af227d7b0..922f444ce66 100644 --- a/src/plugins/mcusupport/test/armgcc_stm32h750b_discovery_baremetal_json.h +++ b/src/plugins/mcusupport/test/armgcc_stm32h750b_discovery_baremetal_json.h @@ -21,7 +21,11 @@ constexpr auto armgcc_stm32h750b_discovery_baremetal_json = R"( "setting": "Stm32CubeProgrammer", "defaultValue": { "windows": "%{Env:PROGRAMSANDFILES}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/", - "unix": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/" + "linux": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/" + }, + "detectionPath": { + "windows": "bin/STM32_Programmer_CLI.exe", + "linux": "bin/STM32_Programmer.sh" }, "optional": false, "addToSystemPath": true @@ -45,6 +49,10 @@ constexpr auto armgcc_stm32h750b_discovery_baremetal_json = R"( "filePattern": "bin/arm-none-eabi-g++", "executableArgs": "--version", "regex": "\\bv(\\d+\\.\\d+\\.\\d+)\\b" + }, + "detectionPath": { + "windows": "bin/arm-none-eabi-g++.exe", + "linux": "bin/arm-none-eabi-g++" } }, "file": { diff --git a/src/plugins/mcusupport/test/errors_json.h b/src/plugins/mcusupport/test/errors_json.h index 9ab54ed68a7..ce74f5d90c0 100644 --- a/src/plugins/mcusupport/test/errors_json.h +++ b/src/plugins/mcusupport/test/errors_json.h @@ -91,7 +91,7 @@ constexpr auto mulitple_toolchain_versions = R"( "setting": "Stm32CubeProgrammer", "defaultValue": { "windows": "%{Env:PROGRAMSANDFILES}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/", - "unix": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/" + "linux": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/" }, "optional": false } 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 40127e894f0..32422dc5f2e 100644 --- a/src/plugins/mcusupport/test/ghs_rh850_d1m1a_baremetal_json.h +++ b/src/plugins/mcusupport/test/ghs_rh850_d1m1a_baremetal_json.h @@ -23,7 +23,11 @@ constexpr auto ghs_rh850_d1m1a_baremetal_json = R"( "cmakeVar": "RENESAS_FLASH_PROGRAMMER_PATH", "defaultValue": { "windows": "%{Env:PROGRAMSANDFILES}/Renesas Electronics/Programming Tools/Renesas Flash Programmer V3.09", - "unix": "%{Env:HOME}" + "linux": "%{Env:HOME}" + }, + "detectionPath": { + "windows": "rfp-cli.exe", + "linux": "rfp-cli" }, "envVar": "RENESAS_FLASH_PROGRAMMER_PATH", "optional": true, 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 3df8455c07d..c612bd42ebd 100644 --- a/src/plugins/mcusupport/test/iar_ek_ra6m3g_baremetal_json.h +++ b/src/plugins/mcusupport/test/iar_ek_ra6m3g_baremetal_json.h @@ -22,7 +22,7 @@ constexpr auto iar_ek_ra6m3g_baremetal_json = R"( "type": "path", "defaultValue": { "windows": "%{Env:PROGRAMSANDFILES}/SEGGER/JLink", - "unix": "/opt/SEGGER/JLink" + "linux": "/opt/SEGGER/JLink" }, "optional": true, "addToSystemPath": true @@ -45,7 +45,12 @@ constexpr auto iar_ek_ra6m3g_baremetal_json = R"( "filePattern": "bin/iccarm", "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" - } + }, + "detectionPath": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, + "optional": false }, "file": { "id": "IAR_CMAKE_TOOLCHAIN_FILE", 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 570259672cf..98ebfbb4b1c 100644 --- a/src/plugins/mcusupport/test/iar_ek_ra6m3g_freertos_json.h +++ b/src/plugins/mcusupport/test/iar_ek_ra6m3g_freertos_json.h @@ -22,7 +22,7 @@ constexpr auto iar_ek_ra6m3g_freertos_json = R"( "type": "path", "defaultValue": { "windows": "%{Env:PROGRAMSANDFILES}/SEGGER/JLink", - "unix": "/opt/SEGGER/JLink" + "linux": "/opt/SEGGER/JLink" }, "optional": true, "addToSystemPath": true @@ -45,7 +45,12 @@ constexpr auto iar_ek_ra6m3g_freertos_json = R"( "filePattern": "bin/iccarm", "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" - } + }, + "detectionPath": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, + "optional": false }, "file": { "id": "IAR_CMAKE_TOOLCHAIN_FILE", @@ -73,7 +78,7 @@ constexpr auto iar_ek_ra6m3g_freertos_json = R"( "label": "FreeRTOS SDK for EK-RA6M3G", "cmakeVar": "FREERTOS_DIR", "defaultValue": "%{Qul_ROOT}/platform/boards/renesas/ek-ra6m3g-common/3rdparty/freertos", - "validation": "tasks.c", + "detectionPath": "tasks.c", "type": "path", "optional": false } diff --git a/src/plugins/mcusupport/test/iar_example_baremetal_json.h b/src/plugins/mcusupport/test/iar_example_baremetal_json.h index ca73ea8b422..66e6abde63c 100644 --- a/src/plugins/mcusupport/test/iar_example_baremetal_json.h +++ b/src/plugins/mcusupport/test/iar_example_baremetal_json.h @@ -30,7 +30,12 @@ constexpr auto iar_example_baremetal_json = R"( "filePattern": "bin/iccarm", "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" - } + }, + "detectionPath": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, + "optional": false }, "file": { "id": "IAR_CMAKE_TOOLCHAIN_FILE", 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 9903abd6c84..5fe5a089842 100644 --- a/src/plugins/mcusupport/test/iar_mimxrt1050_evk_baremetal_json.h +++ b/src/plugins/mcusupport/test/iar_mimxrt1050_evk_baremetal_json.h @@ -22,10 +22,11 @@ constexpr auto iar_mimxrt1050_evk_baremetal_json = R"( "setting": "MCUXpressoIDE", "defaultValue": { "windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*", - "unix": "/usr/local/mcuxpressoide/" + "linux": "/usr/local/mcuxpressoide/" }, - "versionDetection": { - "filePattern": "ide/binaries/crt_emu_cm_redlink" + "detectionPath": { + "windows": "ide/binaries/crt_emu_cm_redlink.exe", + "linux": "ide/binaries/crt_emu_cm_redlink" }, "optional": false, "addToSystemPath": true @@ -48,7 +49,12 @@ constexpr auto iar_mimxrt1050_evk_baremetal_json = R"( "filePattern": "bin/iccarm", "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" - } + }, + "detectionPath": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, + "optional": false }, "file": { "id": "IAR_CMAKE_TOOLCHAIN_FILE", 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 c5c0cee2d4c..93d23e305a2 100644 --- a/src/plugins/mcusupport/test/iar_mimxrt1050_evk_freertos_json.h +++ b/src/plugins/mcusupport/test/iar_mimxrt1050_evk_freertos_json.h @@ -22,10 +22,11 @@ constexpr auto iar_mimxrt1050_evk_freertos_json = R"( "setting": "MCUXpressoIDE", "defaultValue": { "windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*", - "unix": "/usr/local/mcuxpressoide/" + "linux": "/usr/local/mcuxpressoide/" }, - "versionDetection": { - "filePattern": "ide/binaries/crt_emu_cm_redlink" + "detectionPath": { + "windows": "ide/binaries/crt_emu_cm_redlink.exe", + "linux": "ide/binaries/crt_emu_cm_redlink" }, "optional": false, "addToSystemPath": true @@ -48,7 +49,12 @@ constexpr auto iar_mimxrt1050_evk_freertos_json = R"( "filePattern": "bin/iccarm", "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" - } + }, + "detectionPath": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, + "optional": false }, "file": { "id": "IAR_CMAKE_TOOLCHAIN_FILE", @@ -79,7 +85,7 @@ constexpr auto iar_mimxrt1050_evk_freertos_json = R"( "freeRTOS": { "cmakeVar": "FREERTOS_DIR", "defaultValue": "%{QUL_BOARD_SDK_DIR}/rtos/freertos/freertos_kernel", - "validation": "tasks.c", + "detectionPath": "tasks.c", "envVar": "IMXRT1050_FREERTOS_DIR", "label": "FreeRTOS SDK for MIMXRT1050-EVK", "optional": false, 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 5ad87a16c56..6600150f5d6 100644 --- a/src/plugins/mcusupport/test/iar_mimxrt1060_evk_baremetal_json.h +++ b/src/plugins/mcusupport/test/iar_mimxrt1060_evk_baremetal_json.h @@ -22,10 +22,11 @@ constexpr auto iar_mimxrt1060_evk_baremetal_json = R"( "setting": "MCUXpressoIDE", "defaultValue": { "windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*", - "unix": "/usr/local/mcuxpressoide/" + "linux": "/usr/local/mcuxpressoide/" }, - "versionDetection": { - "filePattern": "ide/binaries/crt_emu_cm_redlink" + "detectionPath": { + "windows": "ide/binaries/crt_emu_cm_redlink.exe", + "linux": "ide/binaries/crt_emu_cm_redlink" }, "optional": false, "addToSystemPath": true @@ -48,7 +49,12 @@ constexpr auto iar_mimxrt1060_evk_baremetal_json = R"( "filePattern": "bin/iccarm", "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" - } + }, + "detectionPath": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, + "optional": false }, "file": { "id": "IAR_CMAKE_TOOLCHAIN_FILE", 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 634d3b92505..83d3c23b1a9 100644 --- a/src/plugins/mcusupport/test/iar_mimxrt1064_evk_baremetal_json.h +++ b/src/plugins/mcusupport/test/iar_mimxrt1064_evk_baremetal_json.h @@ -22,10 +22,11 @@ constexpr auto iar_mimxrt1064_evk_baremetal_json = R"( "setting": "MCUXpressoIDE", "defaultValue": { "windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*", - "unix": "/usr/local/mcuxpressoide/" + "linux": "/usr/local/mcuxpressoide/" }, - "versionDetection": { - "filePattern": "ide/binaries/crt_emu_cm_redlink" + "detectionPath": { + "windows": "ide/binaries/crt_emu_cm_redlink.exe", + "linux": "ide/binaries/crt_emu_cm_redlink" }, "optional": false, "addToSystemPath": true @@ -48,7 +49,12 @@ constexpr auto iar_mimxrt1064_evk_baremetal_json = R"( "filePattern": "bin/iccarm", "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" - } + }, + "detectionPath": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, + "optional": false }, "file": { "id": "IAR_CMAKE_TOOLCHAIN_FILE", 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 8a223c2a6db..2f71e359048 100644 --- a/src/plugins/mcusupport/test/iar_mimxrt1064_evk_freertos_json.h +++ b/src/plugins/mcusupport/test/iar_mimxrt1064_evk_freertos_json.h @@ -22,10 +22,11 @@ constexpr auto iar_mimxrt1064_evk_freertos_json = R"( "setting": "MCUXpressoIDE", "defaultValue": { "windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*", - "unix": "/usr/local/mcuxpressoide/" + "linux": "/usr/local/mcuxpressoide/" }, - "versionDetection": { - "filePattern": "ide/binaries/crt_emu_cm_redlink" + "detectionPath": { + "windows": "ide/binaries/crt_emu_cm_redlink.exe", + "linux": "ide/binaries/crt_emu_cm_redlink" }, "optional": false, "addToSystemPath": true @@ -48,7 +49,12 @@ constexpr auto iar_mimxrt1064_evk_freertos_json = R"( "filePattern": "bin/iccarm", "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" - } + }, + "detectionPath": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, + "optional": false }, "file": { "id": "IAR_CMAKE_TOOLCHAIN_FILE", @@ -79,7 +85,7 @@ constexpr auto iar_mimxrt1064_evk_freertos_json = R"( "freeRTOS": { "cmakeVar": "FREERTOS_DIR", "defaultValue": "%{QUL_BOARD_SDK_DIR}/rtos/freertos/freertos_kernel", - "validation": "tasks.c", + "detectionPath": "tasks.c", "envVar": "IMXRT1064_FREERTOS_DIR", "label": "FreeRTOS SDK for MIMXRT1064-EVK", "optional": false, 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 c77aa9c3f32..4143e88cd65 100644 --- a/src/plugins/mcusupport/test/iar_mimxrt1170_evk_freertos_json.h +++ b/src/plugins/mcusupport/test/iar_mimxrt1170_evk_freertos_json.h @@ -22,10 +22,11 @@ constexpr auto iar_mimxrt1170_evk_freertos_json = R"( "setting": "MCUXpressoIDE", "defaultValue": { "windows": "%{Env:ROOT}/nxp/MCUXpressoIDE*", - "unix": "/usr/local/mcuxpressoide/" + "linux": "/usr/local/mcuxpressoide/" }, - "versionDetection": { - "filePattern": "ide/binaries/crt_emu_cm_redlink" + "detectionPath": { + "windows": "ide/binaries/crt_emu_cm_redlink.exe", + "linux": "ide/binaries/crt_emu_cm_redlink" }, "optional": false, "addToSystemPath": true @@ -48,7 +49,12 @@ constexpr auto iar_mimxrt1170_evk_freertos_json = R"( "filePattern": "bin/iccarm", "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" - } + }, + "detectionPath": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, + "optional": false }, "file": { "id": "IAR_CMAKE_TOOLCHAIN_FILE", @@ -80,7 +86,7 @@ constexpr auto iar_mimxrt1170_evk_freertos_json = R"( "envVar": "EVK_MIMXRT1170_FREERTOS_PATH", "label": "FreeRTOS SDK for MIMXRT1170-EVK", "defaultValue": "%{QUL_BOARD_SDK_DIR}/rtos/freertos/freertos_kernel", - "validation": "tasks.c", + "detectionPath": "tasks.c", "type": "path", "optional": false } 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 6b1edf70b0d..c5b2c4cba60 100644 --- a/src/plugins/mcusupport/test/iar_stm32f469i_discovery_baremetal_json.h +++ b/src/plugins/mcusupport/test/iar_stm32f469i_discovery_baremetal_json.h @@ -21,7 +21,11 @@ constexpr auto iar_stm32f469i_discovery_baremetal_json = R"( "setting": "Stm32CubeProgrammer", "defaultValue": { "windows": "%{Env:PROGRAMSANDFILES}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/", - "unix": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/" + "linux": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/" + }, + "detectionPath": { + "windows": "bin/STM32_Programmer_CLI.exe", + "linux": "bin/STM32_Programmer.sh" }, "optional": false, "addToSystemPath": true @@ -44,7 +48,12 @@ constexpr auto iar_stm32f469i_discovery_baremetal_json = R"( "filePattern": "bin/iccarm", "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" - } + }, + "detectionPath": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, + "optional": false }, "file": { "id": "IAR_CMAKE_TOOLCHAIN_FILE", 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 8ff4c748cde..5ac1c9f67df 100644 --- a/src/plugins/mcusupport/test/iar_stm32f769i_discovery_baremetal_json.h +++ b/src/plugins/mcusupport/test/iar_stm32f769i_discovery_baremetal_json.h @@ -21,7 +21,11 @@ constexpr auto iar_stm32f769i_discovery_baremetal_json = R"( "setting": "Stm32CubeProgrammer", "defaultValue": { "windows": "%{Env:PROGRAMSANDFILES}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/", - "unix": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/" + "linux": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/" + }, + "detectionPath": { + "windows": "bin/STM32_Programmer_CLI.exe", + "linux": "bin/STM32_Programmer.sh" }, "optional": false, "addToSystemPath": true @@ -44,7 +48,12 @@ constexpr auto iar_stm32f769i_discovery_baremetal_json = R"( "filePattern": "bin/iccarm", "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" - } + }, + "detectionPath": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, + "optional": false }, "file": { "id": "IAR_CMAKE_TOOLCHAIN_FILE", 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 2817aed3a0d..19e77fd5e08 100644 --- a/src/plugins/mcusupport/test/iar_stm32f769i_discovery_freertos_json.h +++ b/src/plugins/mcusupport/test/iar_stm32f769i_discovery_freertos_json.h @@ -21,7 +21,11 @@ constexpr auto iar_stm32f769i_discovery_freertos_json = R"( "setting": "Stm32CubeProgrammer", "defaultValue": { "windows": "%{Env:PROGRAMSANDFILES}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/", - "unix": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/" + "linux": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/" + }, + "detectionPath": { + "windows": "bin/STM32_Programmer_CLI.exe", + "linux": "bin/STM32_Programmer.sh" }, "optional": false, "addToSystemPath": true @@ -44,7 +48,12 @@ constexpr auto iar_stm32f769i_discovery_freertos_json = R"( "filePattern": "bin/iccarm", "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" - } + }, + "detectionPath": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, + "optional": false }, "file": { "id": "IAR_CMAKE_TOOLCHAIN_FILE", @@ -77,7 +86,7 @@ constexpr auto iar_stm32f769i_discovery_freertos_json = R"( "label": "FreeRTOS SDK for STM32F769I-Discovery", "cmakeVar": "FREERTOS_DIR", "defaultValue": "%{QUL_BOARD_SDK_DIR}/Middlewares/Third_Party/FreeRTOS/Source", - "validation": "tasks.c", + "detectionPath": "tasks.c", "type": "path", "setting": "FreeRTOSSourcePackage_STM32F7", "optional": false 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 836cdde05d0..ae76ca9bd15 100644 --- a/src/plugins/mcusupport/test/iar_stm32h750b_discovery_baremetal_json.h +++ b/src/plugins/mcusupport/test/iar_stm32h750b_discovery_baremetal_json.h @@ -21,7 +21,11 @@ constexpr auto iar_stm32h750b_discovery_baremetal_json = R"( "setting": "Stm32CubeProgrammer", "defaultValue": { "windows": "%{Env:PROGRAMSANDFILES}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/", - "unix": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/" + "linux": "%{Env:HOME}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/" + }, + "detectionPath": { + "windows": "bin/STM32_Programmer_CLI.exe", + "linux": "bin/STM32_Programmer.sh" }, "optional": false, "addToSystemPath": true @@ -44,7 +48,12 @@ constexpr auto iar_stm32h750b_discovery_baremetal_json = R"( "filePattern": "bin/iccarm", "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" - } + }, + "detectionPath": { + "windows": "bin/iccarm.exe", + "linux": "bin/iccarm" + }, + "optional": false }, "file": { "id": "IAR_CMAKE_TOOLCHAIN_FILE", diff --git a/src/plugins/mcusupport/test/iar_tviic2d6m_baremetal_json.h b/src/plugins/mcusupport/test/iar_tviic2d6m_baremetal_json.h index 2b5ec845bf4..0e4d7442dfb 100644 --- a/src/plugins/mcusupport/test/iar_tviic2d6m_baremetal_json.h +++ b/src/plugins/mcusupport/test/iar_tviic2d6m_baremetal_json.h @@ -40,7 +40,9 @@ constexpr auto iar_tviic2d6m_baremetal_json = R"( "filePattern": "bin/iccarm", "executableArgs": "--version", "regex": "\\bV(\\d+\\.\\d+\\.\\d+)\\.\\d+\\b" - } + }, + "detectionPath": "bin/iccarm.exe", + "optional": false }, "file": { "id": "IAR_CMAKE_TOOLCHAIN_FILE", diff --git a/src/plugins/mcusupport/test/unittest.cpp b/src/plugins/mcusupport/test/unittest.cpp index d503489aae9..6d8e84c7979 100644 --- a/src/plugins/mcusupport/test/unittest.cpp +++ b/src/plugins/mcusupport/test/unittest.cpp @@ -132,18 +132,21 @@ const char xpressoIdeLabel[]{"MCUXpresso IDE"}; const char xpressoIdeSetting[]{"MCUXpressoIDE"}; const char xpressoIdeCmakeVar[]{"MCUXPRESSO_IDE_PATH"}; const char xpressoIdeEnvVar[]{"MCUXpressoIDE_PATH"}; -const char xpressoIdeDetectionPath[]{"ide/binaries/crt_emu_cm_redlink"}; +const QString xpressoIdeDetectionPath{ + HostOsInfo::withExecutableSuffix("ide/binaries/crt_emu_cm_redlink")}; const char stmCubeProgrammerSetting[]{"Stm32CubeProgrammer"}; const char stmCubeProgrammerLabel[]{"STM32CubeProgrammer"}; const QString stmCubeProgrammerPath{QString{defaultToolPath} + "/bin"}; -const QString stmCubeProgrammerDetectionPath{"/bin/STM32_Programmer.sh"}; +const QString stmCubeProgrammerDetectionPath{HostOsInfo::isWindowsHost() + ? QString("bin/STM32_Programmer_CLI.exe") + : QString("bin/STM32_Programmer.sh")}; const char renesasProgrammerSetting[]{"RenesasFlashProgrammer"}; const char renesasProgrammerCmakeVar[]{"RENESAS_FLASH_PROGRAMMER_PATH"}; const QString renesasProgrammerEnvVar{renesasProgrammerCmakeVar}; const char renesasProgrammerLabel[]{"Renesas Flash Programmer"}; -const char renesasProgrammerDetectionPath[]{"rfp-cli"}; +const QString renesasProgrammerDetectionPath{HostOsInfo::withExecutableSuffix("rfp-cli")}; const char renesasE2StudioCmakeVar[]{"EK_RA6M3G_E2_PROJECT_PATH"}; const char renesasE2StudioDefaultPath[]{"%{Env:HOME}/e2_studio/workspace"}; @@ -155,7 +158,7 @@ const char cypressProgrammerSetting[]{"CypressAutoFlashUtil"}; const char cypressProgrammerCmakeVar[]{"INFINEON_AUTO_FLASH_UTILITY_DIR"}; const char cypressProgrammerEnvVar[]{"CYPRESS_AUTO_FLASH_UTILITY_DIR"}; const char cypressProgrammerLabel[]{"Cypress Auto Flash Utility"}; -const char cypressProgrammerDetectionPath[]{"/bin/openocd"}; +const QString cypressProgrammerDetectionPath{HostOsInfo::withExecutableSuffix("/bin/openocd")}; const char jlinkPath[]{"/opt/SEGGER/JLink"}; const char jlinkSetting[]{"JLinkPath"}; @@ -1527,6 +1530,7 @@ void McuSupportTest::test_createThirdPartyPackage() QFETCH(QString, cmakeVar); QFETCH(QString, envVar); QFETCH(QString, label); + QFETCH(QString, detectionPath); McuTargetDescription targetDescription{parseDescriptionJson(json.toLocal8Bit())}; @@ -1544,7 +1548,15 @@ void McuSupportTest::test_createThirdPartyPackage() return (pkg->settingsKey() == setting); }); - verifyPackage(thirdPartyPackage, path, defaultPath, setting, cmakeVar, envVar, label, {}, {}); + verifyPackage(thirdPartyPackage, + path, + defaultPath, + setting, + cmakeVar, + envVar, + label, + detectionPath, + {}); } void McuSupportTest::test_legacy_createCypressProgrammer3rdPartyPackage() @@ -1594,15 +1606,20 @@ void McuSupportTest::test_createJLink3rdPartyPackage() {}); } -void McuSupportTest::test_defaultValueForEachOperationSystem() +void McuSupportTest::test_differentValueForEachOperationSystem() { const auto packageDescription = parseDescriptionJson(armgcc_mimxrt1050_evk_freertos_json); auto default_path_entry = packageDescription.platform.entries[0].defaultPath.toString(); + auto validation_path_entry = packageDescription.platform.entries[0].detectionPath.toString(); - if (HostOsInfo::isWindowsHost()) + //TODO: Revisit whether this test is required and not currently covered by the third party packages + if (HostOsInfo::isWindowsHost()) { QCOMPARE(QString("%{Env:ROOT}/nxp/MCUXpressoIDE*"), default_path_entry); - else + QCOMPARE(QString("ide/binaries/crt_emu_cm_redlink.exe"), validation_path_entry); + } else { QCOMPARE(QString("/usr/local/mcuxpressoide"), default_path_entry); + QCOMPARE(QString("ide/binaries/crt_emu_cm_redlink"), validation_path_entry); + } }; void McuSupportTest::test_addToSystemPathFlag() { diff --git a/src/plugins/mcusupport/test/unittest.h b/src/plugins/mcusupport/test/unittest.h index fae8fca93a7..25982d71bd3 100644 --- a/src/plugins/mcusupport/test/unittest.h +++ b/src/plugins/mcusupport/test/unittest.h @@ -100,7 +100,7 @@ private slots: void test_legacy_createCypressProgrammer3rdPartyPackage(); void test_createJLink3rdPartyPackage(); - void test_defaultValueForEachOperationSystem(); + void test_differentValueForEachOperationSystem(); void test_addToSystemPathFlag(); private: