diff options
author | Karim Abdelrahman <karim.abdelrahman@qt.io> | 2023-04-05 10:50:33 +0300 |
---|---|---|
committer | Sivert Krøvel <sivert.krovel@qt.io> | 2023-05-05 06:31:07 +0000 |
commit | b083a4d55efbf9f6558034c0ce4efe31062e0e5b (patch) | |
tree | b822dfa4525d6a3fc77a1995bb2fdd683912f1d8 | |
parent | de6ed91c9c344236e9f0b607320cc2f9a0c68b6e (diff) | |
download | qt-creator-b083a4d55efbf9f6558034c0ce4efe31062e0e5b.tar.gz |
McuSupport: fix toolchain naming difference between windows and linux
Toolchain naming convention is different in windows "mingw" than in
linux "gcc". That caused the logic to fail on windows and prompt the
user to remove a kit of an existing target.
Task-number: QTCREATORBUG-29003
Change-Id: Ib99a9b38fec30b9a6826874f1acd0bb2f8615e1e
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Sivert Krøvel <sivert.krovel@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
-rw-r--r-- | src/plugins/mcusupport/mcukitmanager.cpp | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/plugins/mcusupport/mcukitmanager.cpp b/src/plugins/mcusupport/mcukitmanager.cpp index 61f268f021..f68eca6973 100644 --- a/src/plugins/mcusupport/mcukitmanager.cpp +++ b/src/plugins/mcusupport/mcukitmanager.cpp @@ -289,8 +289,7 @@ public: cMakeToolchainFile.toString().toUtf8()); if (!cMakeToolchainFile.exists()) { printMessage( - Tr::tr( - "Warning for target %1: missing CMake toolchain file expected at %2.") + Tr::tr("Warning for target %1: missing CMake toolchain file expected at %2.") .arg(generateKitNameFromTarget(mcuTarget), cMakeToolchainFile.toUserOutput()), false); @@ -301,8 +300,7 @@ public: "/lib/cmake/Qul/QulGenerators.cmake"); configMap.insert("QUL_GENERATORS", generatorsPath.toString().toUtf8()); if (!generatorsPath.exists()) { - printMessage(Tr::tr( - "Warning for target %1: missing QulGenerators expected at %2.") + printMessage(Tr::tr("Warning for target %1: missing QulGenerators expected at %2.") .arg(generateKitNameFromTarget(mcuTarget), generatorsPath.toUserOutput()), false); @@ -510,8 +508,7 @@ void createAutomaticKits(const SettingsHandler::Ptr &settingsHandler) } case McuAbstractPackage::Status::EmptyPath: { printMessage( - Tr::tr( - "Missing %1. Add the path in Edit > Preferences > Devices > MCU.") + Tr::tr("Missing %1. Add the path in Edit > Preferences > Devices > MCU.") .arg(qtForMCUsPackage->detectionPath().toUserOutput()), true); return; @@ -524,9 +521,8 @@ void createAutomaticKits(const SettingsHandler::Ptr &settingsHandler) if (CMakeProjectManager::CMakeToolManager::cmakeTools().isEmpty()) { printMessage( - Tr::tr( - "No CMake tool was detected. Add a CMake tool in Edit > Preferences > " - "Kits > CMake."), + Tr::tr("No CMake tool was detected. Add a CMake tool in Edit > Preferences > " + "Kits > CMake."), true); return; } @@ -744,11 +740,17 @@ static bool anyKitDescriptionFileExists(const FilePaths &jsonFiles, const QRegularExpressionMatch match = re.match(jsonFile.fileName()); QStringList kitsPropertiesFromFileName; if (match.hasMatch()) { - const QString toolchain = match.captured(1).replace( - "gnu", "gcc"); // kitFileName contains gnu while profiles.xml contains gcc + QString toolchain = match.captured(1); const QString vendor = match.captured(2); const QString device = match.captured(3); + /* + * file name of kit starts with "gnu" while in profiles.xml name of + * toolchain is "gcc" on Linux and "mingw" on Windows + */ + toolchain = HostOsInfo::isLinuxHost() ? toolchain.replace("gnu", "gcc") + : toolchain.replace("gnu", "mingw"); + kitsPropertiesFromFileName << toolchain << vendor << device; } |