FindOpenSSL¶
尋找 OpenSSL 加密函式庫。
此模組會尋找已安裝的 OpenSSL 函式庫並判斷其版本。
在 3.19 版本中新增: 當請求版本時,可以將其指定為簡單值或範圍。有關版本範圍用法和功能的詳細說明,請參閱 find_package()
命令。
在 3.18 版本中新增: 支援 OpenSSL 3.0。
可選 COMPONENTS¶
在 3.12 版本中新增。
此模組支援兩個可選的 COMPONENTS:Crypto
和 SSL
。 兩個元件都有相關聯的匯入目標,如下所述。
匯入的目標¶
在 3.4 版本中新增。
此模組定義以下 IMPORTED
目標
OpenSSL::SSL
如果找到,則為 OpenSSL
ssl
函式庫。OpenSSL::Crypto
如果找到,則為 OpenSSL
crypto
函式庫。OpenSSL::applink
在 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
在 3.4 版本中新增。
設定為
TRUE
以尋找靜態函式庫。OPENSSL_MSVC_STATIC_RT
在 3.5 版本中新增。
設定為
TRUE
以選擇 lib 的 MT 版本。ENV{PKG_CONFIG_PATH}
在類似 UNIX 的系統上,使用
pkg-config
來定位系統 OpenSSL。 設定PKG_CONFIG_PATH
環境變數以在其他位置尋找。 在多函式庫系統上很有用。