function(projt_find_openssl_by_nuget) # Find OpenSSL from NuGet file(GLOB NUGET_OSSL_ROOTS "${CMAKE_SOURCE_DIR}/dependencies/openssl-native*") if(NUGET_OSSL_ROOTS) list(GET NUGET_OSSL_ROOTS 0 OSSL_ROOT_DIR) message(STATUS "Found OpenSSL NuGet: ${OSSL_ROOT_DIR}") set(OPENSSL_ROOT_DIR "${OSSL_ROOT_DIR}/build/native" CACHE PATH "" FORCE) set(OPENSSL_USE_STATIC_LIBS ON) file(GLOB_RECURSE OSSL_LIBS "${OSSL_ROOT_DIR}/*.lib") foreach(LIB_PATH ${OSSL_LIBS}) # Strictly match architecture folder to avoid win-x86 if(LIB_PATH MATCHES "win-${OSSL_ARCH}" OR LIB_PATH MATCHES "/${OSSL_ARCH}/") if(LIB_PATH MATCHES "libcrypto.lib$|crypto.lib$") if(NOT LIB_PATH MATCHES "[Dd]ebug" OR NOT OPENSSL_CRYPTO_LIBRARY) set(OPENSSL_CRYPTO_LIBRARY "${LIB_PATH}" CACHE FILEPATH "" FORCE) endif() elseif(LIB_PATH MATCHES "libssl.lib$|ssl.lib$") if(NOT LIB_PATH MATCHES "[Dd]ebug" OR NOT OPENSSL_SSL_LIBRARY) set(OPENSSL_SSL_LIBRARY "${LIB_PATH}" CACHE FILEPATH "" FORCE) endif() endif() endif() endforeach() if(OPENSSL_CRYPTO_LIBRARY AND OPENSSL_SSL_LIBRARY) set(OPENSSL_INCLUDE_DIR "${OPENSSL_ROOT_DIR}/include" CACHE PATH "" FORCE) set(OPENSSL_LIBRARIES "${OPENSSL_SSL_LIBRARY}" "${OPENSSL_CRYPTO_LIBRARY}" CACHE STRING "" FORCE) message(STATUS "Found OpenSSL via NuGet: ${OPENSSL_CRYPTO_LIBRARY}") set(OpenSSL_FOUND TRUE CACHE BOOL "" FORCE) set(OPENSSL_FOUND TRUE CACHE BOOL "" FORCE) endif() endif() endfunction()