FindOpenSSL

尋找 OpenSSL 加密函式庫。

此模組尋找已安裝的 OpenSSL 函式庫並判斷其版本。

Added in version 3.19: 當請求版本時,可以指定為簡單值或範圍。 有關版本範圍用法和功能的詳細描述,請參閱 find_package() 命令。

Added in version 3.18: 支援 OpenSSL 3.0。

選用組件

Added in version 3.12.

此模組支援兩個選用組件: CryptoSSL。 兩個組件都有相關聯的匯入目標,如下所述。

匯入目標

Added in version 3.4.

此模組定義以下 IMPORTED 目標

OpenSSL::SSL

OpenSSL ssl 函式庫,如果找到的話。

OpenSSL::Crypto

OpenSSL crypto 函式庫,如果找到的話。

OpenSSL::applink

Added in version 3.18.

OpenSSL applink 組件,在 MSVC 下可能需要編譯到專案中。 只有在找到的 OpenSSL 版本不低於 0.9.8 時,此目標才可用。 透過連結此目標,即使專案與上述 OpenSSL 目標具有不同的 MSVC 執行階段配置,也可以連結上述 OpenSSL 目標。 此目標在 MSVC 以外的平台上無效。

注意:由於 INTERFACE_SOURCES 如何被使用目標消耗,除非您確定自己在做什麼,否則始終建議將 OpenSSL::applink 目標連結為 PRIVATE,並確保此目標在任何函式庫或可執行檔的整個依賴關係圖中最多連結一次

target_link_libraries(myTarget PRIVATE OpenSSL::applink)

否則,在建置和連結時,您可能會遇到意想不到的隨機問題,因為 ISO C 和 ISO C++ 標準幾乎沒有聲明連結過程應該是什麼樣子的。

結果變數

此模組將在您的專案中設定以下變數

OPENSSL_FOUND

系統具有 OpenSSL 函式庫。 如果未請求任何組件,則僅需要 crypto 函式庫。

OPENSSL_INCLUDE_DIR

OpenSSL 包含目錄。

OPENSSL_CRYPTO_LIBRARY

OpenSSL crypto 函式庫。

OPENSSL_CRYPTO_LIBRARIES

OpenSSL crypto 函式庫及其依賴項。

OPENSSL_SSL_LIBRARY

OpenSSL SSL 函式庫。

OPENSSL_SSL_LIBRARIES

OpenSSL SSL 函式庫及其依賴項。

OPENSSL_LIBRARIES

所有 OpenSSL 函式庫及其依賴項。

OPENSSL_VERSION

這被設定為 $major.$minor.$revision$patch (例如 0.9.8s)。

OPENSSL_APPLINK_SOURCE

上述 OpenSSL::applink 目標中的來源。 如果找到的 openssl 版本低於 0.9.8 或平台不是 MSVC,則此變數應始終為未定義。

提示

可以設定以下變數來控制搜尋行為

OPENSSL_ROOT_DIR

設定為 OpenSSL 安裝的根目錄。

OPENSSL_USE_STATIC_LIBS

Added in version 3.4.

設定為 TRUE 以尋找靜態函式庫。

OPENSSL_MSVC_STATIC_RT

Added in version 3.5.

設定為 TRUE 以選擇 MT 版本的 lib。

ENV{PKG_CONFIG_PATH}

在類 UNIX 系統上,使用 pkg-config 來定位系統 OpenSSL。 設定 PKG_CONFIG_PATH 環境變數以在其他位置查找。 在多函式庫系統上很有用。