From 37e7b72609e57331dad8de22989e5672ae6f45ea Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 16 Jan 2020 17:25:38 +0100 Subject: [PATCH] QtSupport: Try harder to uniquify the list of auto-detected qmakes Fixes: QTCREATORBUG-23459 Change-Id: I40d1baee48489a6fd439f7ece8b1c5ee664c75c6 Reviewed-by: hjk --- src/plugins/qtsupport/qtversionmanager.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/plugins/qtsupport/qtversionmanager.cpp b/src/plugins/qtsupport/qtversionmanager.cpp index fb08904f5c1..82d2fb9e2d4 100644 --- a/src/plugins/qtsupport/qtversionmanager.cpp +++ b/src/plugins/qtsupport/qtversionmanager.cpp @@ -39,6 +39,7 @@ #include #include +#include #include #include #include @@ -429,11 +430,16 @@ static void findSystemQt() { FilePaths systemQMakes = BuildableHelperLibrary::findQtsInEnvironment(Environment::systemEnvironment()); - systemQMakes.append(gatherQmakePathsFromQtChooser()); - - const FilePaths uniqueSystemQmakes = Utils::filteredUnique(systemQMakes); - for (const FilePath &qmakePath : uniqueSystemQmakes) { + for (const FilePath &qmakePath : qAsConst(systemQMakes)) { + if (BuildableHelperLibrary::isQtChooser(qmakePath.toFileInfo())) + continue; + const auto isSameQmake = [qmakePath](const BaseQtVersion *version) { + return Environment::systemEnvironment(). + isSameExecutable(qmakePath.toString(), version->qmakeCommand().toString()); + }; + if (contains(m_versions, isSameQmake)) + continue; BaseQtVersion *version = QtVersionFactory::createQtVersionFromQMakePath(qmakePath, false, "PATH");