Skip to content

Commit

Permalink
Dep/OpenSSL: Copy legacy.dll manually - vcpkg isn't able to do it aut…
Browse files Browse the repository at this point in the history
…omatically because it is a runtime only loadable dll so it doesn't appear in imports section
  • Loading branch information
Shauren committed Jun 6, 2024
1 parent a89826c commit f12d5a8
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 1 deletion.
20 changes: 19 additions & 1 deletion cmake/macros/FindOpenSSL.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -484,6 +484,23 @@ if(WIN32 AND NOT CYGWIN)
"lib/VC/${_OPENSSL_MSVC_ARCH_DIRECTORY}/${_OPENSSL_MSVC_RT_MODE}"
)

find_file(OPENSSL_LEGACY_DLL_DEBUG
NAMES
legacy.dll
${_OPENSSL_ROOT_HINTS_AND_PATHS}
PATH_SUFFIXES
debug/bin
bin
)

find_file(OPENSSL_LEGACY_DLL_RELEASE
NAMES
legacy.dll
${_OPENSSL_ROOT_HINTS_AND_PATHS}
PATH_SUFFIXES
bin
)

set(LIB_EAY_LIBRARY_DEBUG "${LIB_EAY_DEBUG}")
set(LIB_EAY_LIBRARY_RELEASE "${LIB_EAY_RELEASE}")
set(SSL_EAY_LIBRARY_DEBUG "${SSL_EAY_DEBUG}")
Expand All @@ -494,7 +511,8 @@ if(WIN32 AND NOT CYGWIN)
select_library_configurations(SSL_EAY)

mark_as_advanced(LIB_EAY_LIBRARY_DEBUG LIB_EAY_LIBRARY_RELEASE
SSL_EAY_LIBRARY_DEBUG SSL_EAY_LIBRARY_RELEASE)
SSL_EAY_LIBRARY_DEBUG SSL_EAY_LIBRARY_RELEASE
OPENSSL_LEGACY_DLL_DEBUG OPENSSL_LEGACY_DLL_RELEASE)
set(OPENSSL_SSL_LIBRARY ${SSL_EAY_LIBRARY} )
set(OPENSSL_CRYPTO_LIBRARY ${LIB_EAY_LIBRARY} )
elseif(MINGW)
Expand Down
7 changes: 7 additions & 0 deletions dep/openssl/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,10 @@ target_link_libraries(openssl
INTERFACE
OpenSSL::Crypto
OpenSSL::SSL)

if(WIN32)
set(_OPENSSL_COPY_DLL_DEST "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
add_custom_target(openssl_copy_dll ALL ${CMAKE_COMMAND} -E copy "$<IF:$<CONFIG:Debug>,${OPENSSL_LEGACY_DLL_DEBUG},${OPENSSL_LEGACY_DLL_RELEASE}>" "${_OPENSSL_COPY_DLL_DEST}/")
install(PROGRAMS legacy.dll DESTINATION "${CMAKE_INSTALL_PREFIX}")
add_dependencies(openssl openssl_copy_dll)
endif()

0 comments on commit f12d5a8

Please sign in to comment.