FindHDF5¶
尋找階層式資料格式 (HDF5),這是一個用於讀寫自描述陣列資料的函式庫。
此模組會調用 HDF5
包裝編譯器,該編譯器應與 HDF5
一起安裝。根據 HDF5
的組態,包裝編譯器會被稱為 h5cc
或 h5pcc
。如果成功,此模組將會使用 show 參數呼叫編譯器,以查看編譯 HDF5
客戶端應用程式時使用的標誌。
此模組會選擇性地接受 COMPONENTS
參數。如果未指定任何 COMPONENTS
,則尋找模組將預設僅尋找 HDF5
C 函式庫。如果指定一個或多個 COMPONENTS
,則模組將嘗試尋找指定組件的語言綁定。有效的組件為 C
、CXX
、Fortran
、HL
。HL
指的是 C 和 Fortran 的「高階」HDF5 函數。如果未給定 COMPONENTS
參數,則模組將嘗試僅尋找 C 綁定。例如,要使用 Fortran HDF5 和 HDF5-HL 函數,請執行:find_package(HDF5 COMPONENTS Fortran HL)
。
此模組將讀取變數 HDF5_USE_STATIC_LIBRARIES
,以決定是否偏好 HDF5
及其所有相依性的靜態連結而非動態連結。要使用此功能,請確保在呼叫 find_package 之前設定 HDF5_USE_STATIC_LIBRARIES
變數。
在版本 3.10 中新增: 在 Windows 上支援 HDF5_USE_STATIC_LIBRARIES
。
同時考慮循序和並行 HDF5
包裝器,並使用第一個包含其中一個包裝器的目錄。如果兩者都出現在同一個目錄中,則優先選擇循序版本。可以透過將變數 HDF5_PREFER_PARALLEL
設定為 TRUE
來反轉此行為。
除了尋找編譯 HDF5
客戶端應用程式所需的包含和函式庫之外,此模組還會努力尋找 HDF5
發行版中隨附的工具,這些工具可能對迴歸測試有用。
結果變數¶
此模組將在您的專案中設定以下變數
HDF5_FOUND
在系統上找到 HDF5
HDF5_VERSION
在版本 3.3 中新增: HDF5 函式庫版本
HDF5_INCLUDE_DIRS
HDF5 標頭檔的位置
HDF5_DEFINITIONS
HDF5 所需的編譯器定義
HDF5_LIBRARIES
所有請求的綁定所需的函式庫
HDF5_HL_LIBRARIES
如果啟用
HL
組件,則所有綁定的 HDF5 高階 API 所需的函式庫
可用的組件為:C
CXX
Fortran
和 HL
。對於每個啟用的語言綁定,將會定義對應的 HDF5_${LANG}_LIBRARIES
變數,並可能定義 HDF5_${LANG}_DEFINITIONS
。如果啟用 HL
組件,則也會定義 HDF5_${LANG}_HL_LIBRARIES
。啟用所有組件後,將會定義以下變數
HDF5_C_DEFINITIONS
HDF5 C 綁定所需的編譯器定義
HDF5_CXX_DEFINITIONS
HDF5 C++ 綁定所需的編譯器定義
HDF5_Fortran_DEFINITIONS
HDF5 Fortran 綁定所需的編譯器定義
HDF5_C_INCLUDE_DIRS
HDF5 C 綁定所需的包含目錄
HDF5_CXX_INCLUDE_DIRS
HDF5 C++ 綁定所需的包含目錄
HDF5_Fortran_INCLUDE_DIRS
HDF5 Fortran 綁定所需的包含目錄
HDF5_C_LIBRARIES
HDF5 C 綁定所需的函式庫
HDF5_CXX_LIBRARIES
HDF5 C++ 綁定所需的函式庫
HDF5_Fortran_LIBRARIES
HDF5 Fortran 綁定所需的函式庫
HDF5_C_HL_LIBRARIES
高階 C 綁定所需的函式庫
HDF5_CXX_HL_LIBRARIES
高階 C++ 綁定所需的函式庫
HDF5_Fortran_HL_LIBRARIES
高階 Fortran 綁定所需的函式庫。
HDF5_IS_PARALLEL
HDF5 函式庫具有並行 IO 支援
HDF5_C_COMPILER_EXECUTABLE
HDF5 C 包裝編譯器的路徑
HDF5_CXX_COMPILER_EXECUTABLE
HDF5 C++ 包裝編譯器的路徑
HDF5_Fortran_COMPILER_EXECUTABLE
HDF5 Fortran 包裝編譯器的路徑
HDF5_C_COMPILER_EXECUTABLE_NO_INTERROGATE
主要 C 編譯器的路徑,同時也是 HDF5 包裝器
HDF5_CXX_COMPILER_EXECUTABLE_NO_INTERROGATE
主要 C++ 編譯器的路徑,同時也是 HDF5 包裝器
HDF5_Fortran_COMPILER_EXECUTABLE_NO_INTERROGATE
主要 Fortran 編譯器的路徑,同時也是 HDF5 包裝器
HDF5_DIFF_EXECUTABLE
HDF5 資料集比較工具的路徑
啟用所有組件後,將會定義以下目標
HDF5::HDF5
所有偵測到的
HDF5_LIBRARIES
。hdf5::hdf5
C 函式庫。
hdf5::hdf5_cpp
C++ 函式庫。
hdf5::hdf5_fortran
Fortran 函式庫。
hdf5::hdf5_hl
高階 C 函式庫。
hdf5::hdf5_hl_cpp
高階 C++ 函式庫。
hdf5::hdf5_hl_fortran
高階 Fortran 函式庫。
hdf5::h5diff
h5diff
可執行檔。
提示¶
可以設定以下變數來引導搜尋 HDF5 函式庫和包含
HDF5_PREFER_PARALLEL
在版本 3.4 中新增。
設定為
true
以偏好並行 HDF5(預設情況下,偏好循序)HDF5_FIND_DEBUG
在版本 3.9 中新增。
設定為
true
以取得額外的偵錯輸出。HDF5_NO_FIND_PACKAGE_CONFIG_FILE
在版本 3.8 中新增。
設定為
true
以跳過嘗試尋找hdf5-config.cmake
。