diff options
author | Jiong Chang <xspeed1989@gmail.com> | 2019-11-17 17:04:43 +0800 |
---|---|---|
committer | Jiong Chang <xspeed1989@gmail.com> | 2019-11-21 19:51:40 +0800 |
commit | 18422dbec0f4522e3c2bfaf05ebe5b4fca35be88 (patch) | |
tree | c0f79cd0513cbc0582f8e28f07934cb878cb925c /src/shared/winutils/utils.cpp | |
parent | cf7a206800ec4cc6eb1e60e08487786e2fa26489 (diff) |
windeployqt: Fix detection of MSVC runtime
Detect msvcrt.dll without version number
Change-Id: Ifafdc79c1b6497e1f6695b9c69d9d9fdd6cc2d94
Reviewed-by: Yuhang Zhao <2546789017@qq.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'src/shared/winutils/utils.cpp')
-rw-r--r-- | src/shared/winutils/utils.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/shared/winutils/utils.cpp b/src/shared/winutils/utils.cpp index 263efbe18..9818d53f9 100644 --- a/src/shared/winutils/utils.cpp +++ b/src/shared/winutils/utils.cpp @@ -794,14 +794,13 @@ static inline MsvcDebugRuntimeResult checkMsvcDebugRuntime(const QStringList &de for (const QString &lib : dependentLibraries) { int pos = 0; if (lib.startsWith(QLatin1String("MSVCR"), Qt::CaseInsensitive) - || lib.startsWith(QLatin1String("MSVCP"), Qt::CaseInsensitive)) { - pos = 5; - } else if (lib.startsWith(QLatin1String("VCRUNTIME"), Qt::CaseInsensitive)) { - pos = 9; + || lib.startsWith(QLatin1String("MSVCP"), Qt::CaseInsensitive) + || lib.startsWith(QLatin1String("VCRUNTIME"), Qt::CaseInsensitive)) { + int lastDotPos = lib.lastIndexOf(QLatin1Char('.')); + pos = -1 == lastDotPos ? 0 : lastDotPos - 1; } - if (pos && lib.at(pos).isDigit()) { - for (++pos; lib.at(pos).isDigit(); ++pos) - ; + + if (pos) { return lib.at(pos).toLower() == QLatin1Char('d') ? MsvcDebugRuntime : MsvcReleaseRuntime; } |