Commit f2acb103 authored by Friedemann Kleint's avatar Friedemann Kleint
Browse files

windeployqt: Special case non-standard modules.


Task-number: QTBUG-40670
Change-Id: I3897b4149587cf4e90cbdaf6d54ef8cff70d22d2
Reviewed-by: default avatarAndrew Knight <andrew.knight@digia.com>
Showing with 13 additions and 5 deletions
...@@ -579,6 +579,13 @@ static inline QString helpText(const QCommandLineParser &p) ...@@ -579,6 +579,13 @@ static inline QString helpText(const QCommandLineParser &p)
return result; return result;
} }
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);
}
// Helper for recursively finding all dependent Qt libraries. // Helper for recursively finding all dependent Qt libraries.
static bool findDependentQtLibraries(const QString &qtBinDir, const QString &binary, Platform platform, static bool findDependentQtLibraries(const QString &qtBinDir, const QString &binary, Platform platform,
QString *errorMessage, QStringList *result, QString *errorMessage, QStringList *result,
...@@ -596,11 +603,12 @@ static bool findDependentQtLibraries(const QString &qtBinDir, const QString &bin ...@@ -596,11 +603,12 @@ static bool findDependentQtLibraries(const QString &qtBinDir, const QString &bin
// Filter out the Qt libraries. Note that depends.exe finds libs from optDirectory if we // Filter out the Qt libraries. Note that depends.exe finds libs from optDirectory if we
// are run the 2nd time (updating). We want to check against the Qt bin dir libraries // are run the 2nd time (updating). We want to check against the Qt bin dir libraries
const int start = result->size(); const int start = result->size();
const QRegExp filterRegExp(QStringLiteral("Qt5"), Qt::CaseInsensitive, QRegExp::FixedString); foreach (const QString &lib, dependentLibs) {
foreach (const QString &qtLib, dependentLibs.filter(filterRegExp)) { if (isQtModule(lib)) {
const QString path = normalizeFileName(qtBinDir + QLatin1Char('/') + QFileInfo(qtLib).fileName()); const QString path = normalizeFileName(qtBinDir + QLatin1Char('/') + QFileInfo(lib).fileName());
if (!result->contains(path)) if (!result->contains(path))
result->append(path); result->append(path);
}
} }
const int end = result->size(); const int end = result->size();
if (directDependencyCount) if (directDependencyCount)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment