From 05fd050598c43cb4f06b6b40f987c2fbd34defc2 Mon Sep 17 00:00:00 2001
From: Friedemann Kleint <Friedemann.Kleint@digia.com>
Date: Mon, 27 Oct 2014 16:06:07 +0100
Subject: [PATCH] windeployqt: Make check for Qt modules more discriminative.

Qt Creator's QtcSsh.dll is not a Qt module.

Change-Id: I3349724a5d64d1662480d053369768fbbd54b3bc
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
---
 src/windeployqt/main.cpp | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/windeployqt/main.cpp b/src/windeployqt/main.cpp
index 2f1da1449..c178a2078 100644
--- a/src/windeployqt/main.cpp
+++ b/src/windeployqt/main.cpp
@@ -582,9 +582,13 @@ static inline QString helpText(const QCommandLineParser &p)
 
 static inline bool isQtModule(const QString &libName)
 {
-    return libName.startsWith(QLatin1String("Qt"), Qt::CaseInsensitive) // Standard modules, Qt5XX.dll, Qt[Commercial]Charts.dll
-        || libName.startsWith(QLatin1String("DataVisualization"), Qt::CaseInsensitive)
-        || libName.startsWith(QLatin1String("Enginio"), Qt::CaseInsensitive);
+    // Match Standard modules, Qt5XX.dll, Qt[Commercial]Charts.dll and special cases.
+    return libName.size() > 2
+        && ((libName.startsWith(QLatin1String("Qt"), Qt::CaseInsensitive) && libName.at(2).isDigit())
+            || libName.startsWith(QLatin1String("QtCommercial"), Qt::CaseInsensitive)
+            || libName.startsWith(QLatin1String("QtCharts"), Qt::CaseInsensitive)
+            || libName.startsWith(QLatin1String("DataVisualization"), Qt::CaseInsensitive)
+            || libName.startsWith(QLatin1String("Enginio"), Qt::CaseInsensitive));
 }
 
 // Helper for recursively finding all dependent Qt libraries.
-- 
GitLab