From 5afebd310e8098e842d3c8c3bad08e58565d75ae Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Tue, 17 Jun 2025 17:01:57 +0200 Subject: [PATCH 1/2] FindOpenSSL: Refactor architecture-specific suffix table Do not assume all suffixes start with `x`. --- Modules/FindOpenSSL.cmake | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Modules/FindOpenSSL.cmake b/Modules/FindOpenSSL.cmake index 8754dcf975..f81a6056f4 100644 --- a/Modules/FindOpenSSL.cmake +++ b/Modules/FindOpenSSL.cmake @@ -367,10 +367,10 @@ if(WIN32 AND NOT CYGWIN) # Since OpenSSL 1.1, lib names are like libcrypto32MTd.lib and libssl32MTd.lib if( "${CMAKE_SIZEOF_VOID_P}" STREQUAL "8" ) set(_OPENSSL_MSVC_ARCH_SUFFIX "64") - set(_OPENSSL_MSVC_FOLDER_SUFFIX "64") + set(_OPENSSL_MSVC_FOLDER_SUFFIX "x64") else() set(_OPENSSL_MSVC_ARCH_SUFFIX "32") - set(_OPENSSL_MSVC_FOLDER_SUFFIX "86") + set(_OPENSSL_MSVC_FOLDER_SUFFIX "x86") endif() if(OPENSSL_USE_STATIC_LIBS) @@ -378,13 +378,13 @@ if(WIN32 AND NOT CYGWIN) "_static" ) set(_OPENSSL_PATH_SUFFIXES_DEBUG - "lib/VC/x${_OPENSSL_MSVC_FOLDER_SUFFIX}/${_OPENSSL_MSVC_RT_MODE}d" + "lib/VC/${_OPENSSL_MSVC_FOLDER_SUFFIX}/${_OPENSSL_MSVC_RT_MODE}d" "lib/VC/static" "VC/static" "lib" ) set(_OPENSSL_PATH_SUFFIXES_RELEASE - "lib/VC/x${_OPENSSL_MSVC_FOLDER_SUFFIX}/${_OPENSSL_MSVC_RT_MODE}" + "lib/VC/${_OPENSSL_MSVC_FOLDER_SUFFIX}/${_OPENSSL_MSVC_RT_MODE}" "lib/VC/static" "VC/static" "lib" @@ -394,13 +394,13 @@ if(WIN32 AND NOT CYGWIN) "" ) set(_OPENSSL_PATH_SUFFIXES_DEBUG - "lib/VC/x${_OPENSSL_MSVC_FOLDER_SUFFIX}/${_OPENSSL_MSVC_RT_MODE}d" + "lib/VC/${_OPENSSL_MSVC_FOLDER_SUFFIX}/${_OPENSSL_MSVC_RT_MODE}d" "lib/VC" "VC" "lib" ) set(_OPENSSL_PATH_SUFFIXES_RELEASE - "lib/VC/x${_OPENSSL_MSVC_FOLDER_SUFFIX}/${_OPENSSL_MSVC_RT_MODE}" + "lib/VC/${_OPENSSL_MSVC_FOLDER_SUFFIX}/${_OPENSSL_MSVC_RT_MODE}" "lib/VC" "VC" "lib" From bf52219e4c095fb0db7d0dc6cc0ebcbd5026c73e Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Tue, 17 Jun 2025 17:01:57 +0200 Subject: [PATCH 2/2] FindOpenSSL: Add support for ARM64 Windows pre-built binaries Shining Light Productions now provides OpenSSL binaries for windows-arm64. --- Modules/FindOpenSSL.cmake | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Modules/FindOpenSSL.cmake b/Modules/FindOpenSSL.cmake index f81a6056f4..af137d4a92 100644 --- a/Modules/FindOpenSSL.cmake +++ b/Modules/FindOpenSSL.cmake @@ -296,9 +296,13 @@ elseif (MSVC) HINTS "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (32-bit)_is1;Inno Setup: App Path]" "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (64-bit)_is1;Inno Setup: App Path]" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL for ARM (64-bit)_is1;Inno Setup: App Path]" ) - if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8") + if ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "ARM64") + set(_arch "Win64-ARM") + file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _programfiles) + elseif("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8") set(_arch "Win64") file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _programfiles) else() @@ -365,7 +369,9 @@ if(WIN32 AND NOT CYGWIN) endif () # Since OpenSSL 1.1, lib names are like libcrypto32MTd.lib and libssl32MTd.lib - if( "${CMAKE_SIZEOF_VOID_P}" STREQUAL "8" ) + if ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "ARM64") + set(_OPENSSL_MSVC_FOLDER_SUFFIX "arm64") + elseif( "${CMAKE_SIZEOF_VOID_P}" STREQUAL "8" ) set(_OPENSSL_MSVC_ARCH_SUFFIX "64") set(_OPENSSL_MSVC_FOLDER_SUFFIX "x64") else()