ProjectExplorer: Fix accumulating .exe suffixes

... when trying to detect GCC on Windows.
Also make the code device-correct.

Fixes: QTCREATORBUG-27057
Change-Id: Iaaa25c152a1cf0e0f05cd6d6db629b7a72b25166
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Christian Kandeler
2022-02-14 16:41:57 +01:00
parent b31a569b36
commit fa071d03cc

View File

@@ -1110,6 +1110,10 @@ static FilePaths findCompilerCandidates(const IDevice::ConstPtr &device,
<< ("*-*-*-*-" + compilerName << ("*-*-*-*-" + compilerName
+ "-[1-9]*"); // "x86_64-pc-linux-gnu-gcc-7.4.1" + "-[1-9]*"); // "x86_64-pc-linux-gnu-gcc-7.4.1"
} }
nameFilters = transform(nameFilters,
[os = device ? device->osType() : HostOsInfo::hostOs()](const QString &baseName) {
return OsSpecificAspects::withExecutableSuffix(os, baseName);
});
FilePaths compilerPaths; FilePaths compilerPaths;
@@ -1145,9 +1149,6 @@ static FilePaths findCompilerCandidates(const IDevice::ConstPtr &device,
for (const FilePath &dir : qAsConst(searchPaths)) { for (const FilePath &dir : qAsConst(searchPaths)) {
static const QRegularExpression regexp(binaryRegexp); static const QRegularExpression regexp(binaryRegexp);
QDir binDir(dir.toString()); QDir binDir(dir.toString());
nameFilters = transform(nameFilters, [](const QString &baseName) {
return HostOsInfo::withExecutableSuffix(baseName);
});
const QStringList fileNames = binDir.entryList(nameFilters, const QStringList fileNames = binDir.entryList(nameFilters,
QDir::Files | QDir::Executable); QDir::Files | QDir::Executable);
for (const QString &fileName : fileNames) { for (const QString &fileName : fileNames) {