QSsl: fix OpenSSL DLL names for Windows on ARM

OpenSSL adds an '-arm'/'-arm64' suffix to the DLL names when building
for VC-WIN32-ARM or VC-WIN64-ARM. This needs to be accounted for in Qt
to find the OpenSSL DLLs correctly.

Fixes: QTBUG-89647
Change-Id: Ibc9b81e06f8e64c0676f335e13024fa7fe3a4fa3
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
(cherry picked from commit c111aad270f1d51c2e870ee25e9a6bba64b3cecc)
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
This commit is contained in:
Cameron Gutman 2020-12-21 12:32:38 -06:00 committed by Mårten Nordheim
parent b2af6332ea
commit 7d0cbfc257

View File

@ -677,14 +677,18 @@ static LoadedOpenSsl loadOpenSsl()
{
LoadedOpenSsl result;
// With OpenSSL 1.1 the names have changed to libssl-1_1(-x64) and libcrypto-1_1(-x64), for builds using
// MSVC and GCC, (-x64 suffix for 64-bit builds).
// With OpenSSL 1.1 the names have changed to libssl-1_1 and libcrypto-1_1 for builds using
// MSVC and GCC, with architecture suffixes for non-x86 builds.
#ifdef Q_PROCESSOR_X86_64
#if defined(Q_PROCESSOR_X86_64)
#define QT_SSL_SUFFIX "-x64"
#else // !Q_PROCESSOFR_X86_64
#elif defined(Q_PROCESSOR_ARM_64)
#define QT_SSL_SUFFIX "-arm64"
#elif defined(Q_PROCESSOR_ARM_32)
#define QT_SSL_SUFFIX "-arm"
#else
#define QT_SSL_SUFFIX
#endif // !Q_PROCESSOR_x86_64
#endif
tryToLoadOpenSslWin32Library(QLatin1String("libssl-1_1" QT_SSL_SUFFIX),
QLatin1String("libcrypto-1_1" QT_SSL_SUFFIX), result);