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: