From 316c9d13a0ccf7a7582b508ea6b3c1e9bd01cb87 Mon Sep 17 00:00:00 2001 From: ZeldaZach Date: Wed, 11 Jan 2023 18:58:02 -0500 Subject: [PATCH] Find OpenSSL on Windows --- cmake/FindVCredistRuntime.cmake | 5 +++-- cmake/FindWin32SslRuntime.cmake | 17 ++++++++++++----- cmake/expanduser.cmake | 19 +++++++++++++++++++ vcpkg | 2 +- 4 files changed, 35 insertions(+), 8 deletions(-) create mode 100644 cmake/expanduser.cmake diff --git a/cmake/FindVCredistRuntime.cmake b/cmake/FindVCredistRuntime.cmake index 718d801c4..77658c46d 100644 --- a/cmake/FindVCredistRuntime.cmake +++ b/cmake/FindVCredistRuntime.cmake @@ -9,7 +9,7 @@ if(WIN32) set(REDIST_ARCH x86) endif() - set(REDIST_FILE vcredist_${REDIST_ARCH}.exe) + set(REDIST_FILE vc_redist.${REDIST_ARCH}.exe) set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE) include(InstallRequiredSystemLibraries) @@ -32,7 +32,8 @@ if(WIN32) message(STATUS "Found VCredist ${VCREDISTRUNTIME_FILE}") else() message( - WARNING "Could not find VCredist package. It's not required for compiling, but needs to be available at runtime." + WARNING + "Could not find VCredist package in \"${_path}/${REDIST_FILE}\". It's not required for compiling, but needs to be available at runtime." ) endif() endif() diff --git a/cmake/FindWin32SslRuntime.cmake b/cmake/FindWin32SslRuntime.cmake index 08146d6f8..6c3a99332 100644 --- a/cmake/FindWin32SslRuntime.cmake +++ b/cmake/FindWin32SslRuntime.cmake @@ -9,9 +9,14 @@ if("${CMAKE_GENERATOR_PLATFORM}" STREQUAL "x64") message(STATUS "Looking for OpenSSL for ${CMAKE_GENERATOR_PLATFORM}") file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _programfiles) set(_OPENSSL_ROOT_PATHS - "$ENV{VCPKG_PACKAGES_DIR}/x64-windows/bin" "C:/OpenSSL-Win64/bin" "C:/OpenSSL-Win64" - "C:/Tools/vcpkg/installed/x64-windows/bin" "${_programfiles}/OpenSSL-Win64" + "$ENV{VCPKG_PACKAGES_DIR}/x64-windows/bin" + "C:/OpenSSL-Win64/bin" + "C:/OpenSSL-Win64" + "C:/Tools/vcpkg/installed/x64-windows/bin" + "${_programfiles}/OpenSSL-Win64" "D:/a/Cockatrice/Qt/Tools/OpenSSL/Win_x64/bin" + expanduser + ("~/Documents/Development/Qt/Tools/OpenSSL/Win_x64/bin") ) unset(_programfiles) elseif("${CMAKE_GENERATOR_PLATFORM}" STREQUAL "Win32") @@ -26,12 +31,14 @@ elseif("${CMAKE_GENERATOR_PLATFORM}" STREQUAL "Win32") "${_programfiles}/OpenSSL" "${_programfiles}/OpenSSL-Win32" "D:/a/Cockatrice/Qt/Tools/OpenSSL/Win_x86/bin" + expanduser + ("~/Documents/Development/Qt/Tools/OpenSSL/Win_x86/bin") ) unset(_programfiles) endif() -message(STATUS "Looking for OpenSSL @ $ENV{CMAKE_GENERATOR_PLATFORM} in ${_OPENSSL_ROOT_PATHS}") -if("$ENV{CMAKE_GENERATOR_PLATFORM}" STREQUAL "x64") +message(STATUS "Looking for OpenSSL @ ${CMAKE_GENERATOR_PLATFORM} in ${_OPENSSL_ROOT_PATHS}") +if("${CMAKE_GENERATOR_PLATFORM}" STREQUAL "x64") find_file( WIN32SSLRUNTIME_LIBEAY NAMES libcrypto-1_1-x64.dll libcrypto.dll @@ -44,7 +51,7 @@ if("$ENV{CMAKE_GENERATOR_PLATFORM}" STREQUAL "x64") PATHS ${_OPENSSL_ROOT_PATHS} NO_DEFAULT_PATH ) -elseif("$ENV{CMAKE_GENERATOR_PLATFORM}" STREQUAL "Win32") +elseif("${CMAKE_GENERATOR_PLATFORM}" STREQUAL "Win32") find_file( WIN32SSLRUNTIME_LIBEAY NAMES libcrypto-1_1.dll libcrypto.dll diff --git a/cmake/expanduser.cmake b/cmake/expanduser.cmake new file mode 100644 index 000000000..195ada127 --- /dev/null +++ b/cmake/expanduser.cmake @@ -0,0 +1,19 @@ +# expands ~ to user home directory +# +# usage: +# expanduser("~/code" x) + +function(expanduser in outvar) + + if(CMAKE_VERSION VERSION_LESS 3.21) + get_filename_component(out ${in} ABSOLUTE) + else() + file(REAL_PATH ${in} out EXPAND_TILDE) + endif() + + set(${outvar} + ${out} + PARENT_SCOPE + ) + +endfunction(expanduser) diff --git a/vcpkg b/vcpkg index 79fa9d85c..c30de8e13 160000 --- a/vcpkg +++ b/vcpkg @@ -1 +1 @@ -Subproject commit 79fa9d85cb4510b05c2657bd7ec8a6a2cb266dc5 +Subproject commit c30de8e1369e03f4a569f8f224eed418dd0949bb