cmake/FindSSL.cmake (58 lines of code) (raw):

# Copyright (c) 2022, Alibaba Group Holding Limited # find the SSL library, success when SSL_INCLUDE_DIR and SSL_LIBRARIES_STATIC is # not empty, no matter if SSL_LIBRARIES is empty or not. # find include dir find_path(SSL_INCLUDE_DIR NAMES openssl/ssl.h PATHS ${SSL_DIR} PATH_SUFFIXES include NO_DEFAULT_PATH) # find ssl library find_library(SSL_LIBRARY NAMES ssl PATHS ${SSL_DIR} PATH_SUFFIXES lib64 lib build build/ssl NO_DEFAULT_PATH) # find crypto library find_library(CRYPTO_LIBRARY NAMES crypto PATHS ${SSL_DIR} PATH_SUFFIXES lib64 lib build build/crypto NO_DEFAULT_PATH) if(CMAKE_SYSTEM_NAME MATCHES "Windows") set(SSL_LIBRARY_STATIC_NAME ssl.lib) set(CRYPTO_LIBRARY_STATIC_NAME crypto.lib) else() set(SSL_LIBRARY_STATIC_NAME libssl.a) set(CRYPTO_LIBRARY_STATIC_NAME libcrypto.a) endif() # find ssl static library find_library(SSL_LIBRARY_STATIC NAMES ${SSL_LIBRARY_STATIC_NAME} PATHS ${SSL_DIR} PATH_SUFFIXES lib64 lib build build/${CMAKE_BUILD_TYPE} NO_DEFAULT_PATH) # find crypto static library find_library(CRYPTO_LIBRARY_STATIC NAMES ${CRYPTO_LIBRARY_STATIC_NAME} PATHS ${SSL_DIR} PATH_SUFFIXES lib64 lib build build/${CMAKE_BUILD_TYPE} NO_DEFAULT_PATH) include (FindPackageHandleStandardArgs) if(SSL_DYNAMIC) find_package_handle_standard_args(SSL REQUIRED_VARS SSL_INCLUDE_DIR SSL_LIBRARY CRYPTO_LIBRARY ) else() find_package_handle_standard_args(SSL REQUIRED_VARS SSL_INCLUDE_DIR SSL_LIBRARY_STATIC CRYPTO_LIBRARY_STATIC ) endif() set (SSL_LIBRARIES ${SSL_LIBRARY} ${CRYPTO_LIBRARY}) set (SSL_LIBRARIES_STATIC ${SSL_LIBRARY_STATIC} ${CRYPTO_LIBRARY_STATIC}) mark_as_advanced(SSL_INCLUDE_DIR SSL_LIBRARIES SSL_LIBRARIES_STATIC)