From 4978a76b42964639401f9b63209f68dfcc85a51a Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Fri, 13 Dec 2019 09:47:47 +0100 Subject: windeployqt: Fix MinGW deployment The platform no longer has a 'd' suffix for debug binaries (see qtbase/4d289edb14aeb4976218cc306bfc514e37521b82). Add a check. Fixes: QTBUG-80763 Task-number: QTBUG-78445 Change-Id: I8d4617e2111167a546fa172cbca78a656d233ee5 Reviewed-by: Simon Hausmann Reviewed-by: Oliver Wolff --- src/shared/winutils/utils.cpp | 2 +- src/shared/winutils/utils.h | 5 +++++ src/windeployqt/main.cpp | 10 +++++----- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/shared/winutils/utils.cpp b/src/shared/winutils/utils.cpp index 9818d53f9..f32b9b76b 100644 --- a/src/shared/winutils/utils.cpp +++ b/src/shared/winutils/utils.cpp @@ -112,7 +112,7 @@ QStringList findSharedLibraries(const QDir &directory, Platform platform, QString nameFilter = prefix; if (nameFilter.isEmpty()) nameFilter += QLatin1Char('*'); - if (debugMatchMode == MatchDebug && (platform & WindowsBased)) + if (debugMatchMode == MatchDebug && platformHasDebugSuffix(platform)) nameFilter += QLatin1Char('d'); nameFilter += sharedLibrarySuffix(platform); QStringList result; diff --git a/src/shared/winutils/utils.h b/src/shared/winutils/utils.h index 5552a3665..7915f8e4e 100644 --- a/src/shared/winutils/utils.h +++ b/src/shared/winutils/utils.h @@ -61,6 +61,11 @@ enum Platform { UnknownPlatform }; +inline bool platformHasDebugSuffix(Platform p) // Uses 'd' debug suffix +{ + return (p & WindowsBased) != 0 && (p & MinGW) == 0; +} + enum ListOption { ListNone = 0, ListSource, diff --git a/src/windeployqt/main.cpp b/src/windeployqt/main.cpp index 1fefc6d21..99d1e152a 100644 --- a/src/windeployqt/main.cpp +++ b/src/windeployqt/main.cpp @@ -1062,7 +1062,7 @@ static QString libraryPath(const QString &libraryLocation, const char *name, if (platform & WindowsBased) { result += QLatin1String(name); result += qtLibInfix; - if (debug) + if (debug && platformHasDebugSuffix(platform)) result += QLatin1Char('d'); } else if (platform & UnixBased) { result += QStringLiteral("lib"); @@ -1408,11 +1408,11 @@ static DeployResult deploy(const Options &options, if ((options.platform & WindowsBased) && options.platform != WinCEIntel && options.platform != WinCEArm && !qtGuiLibrary.isEmpty()) { QString libGlesName = QStringLiteral("libGLESV2"); - if (isDebug) + if (isDebug && platformHasDebugSuffix(options.platform)) libGlesName += QLatin1Char('d'); libGlesName += QLatin1String(windowsSharedLibrarySuffix); QString libCombinedQtAngleName = QStringLiteral("QtANGLE"); - if (isDebug) + if (isDebug && platformHasDebugSuffix(options.platform)) libCombinedQtAngleName += QLatin1Char('d'); libCombinedQtAngleName += QLatin1String(windowsSharedLibrarySuffix); const QStringList guiLibraries = findDependentLibraries(qtGuiLibrary, options.platform, errorMessage); @@ -1428,7 +1428,7 @@ static DeployResult deploy(const Options &options, const QString libGlesFullPath = qtBinDir + slash + libGlesName; deployedQtLibraries.append(libGlesFullPath); QString libEglFullPath = qtBinDir + slash + QStringLiteral("libEGL"); - if (isDebug) + if (isDebug && platformHasDebugSuffix(options.platform)) libEglFullPath += QLatin1Char('d'); libEglFullPath += QLatin1String(windowsSharedLibrarySuffix); deployedQtLibraries.append(libEglFullPath); @@ -1606,7 +1606,7 @@ static bool deployWebEngineCore(const QMap &qmakeVariables, "qtwebengine_resources_100p.pak", "qtwebengine_resources_200p.pak"}; QByteArray webEngineProcessName(webEngineProcessC); - if (isDebug) + if (isDebug && platformHasDebugSuffix(options.platform)) webEngineProcessName.append('d'); if (optVerboseLevel) std::wcout << "Deploying: " << webEngineProcessName.constData() << "...\n"; -- cgit v1.2.1