FindOpenSSL¶
尋找 OpenSSL 加密函式庫。
此模組尋找已安裝的 OpenSSL 函式庫並判斷其版本。
Added in version 3.19: 當請求版本時,可以指定為簡單值或範圍。 有關版本範圍用法和功能的詳細描述,請參閱 find_package()
命令。
Added in version 3.18: 支援 OpenSSL 3.0。
選用組件¶
Added in version 3.12.
此模組支援兩個選用組件: Crypto
和 SSL
。 兩個組件都有相關聯的匯入目標,如下所述。
匯入目標¶
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
環境變數以在其他位置查找。 在多函式庫系統上很有用。