FindHDF5

尋找階層式資料格式 (HDF5),這是一個用於讀寫自描述陣列資料的函式庫。

此模組會調用 HDF5 包裝編譯器,該編譯器應與 HDF5 一起安裝。根據 HDF5 的組態,包裝編譯器會被稱為 h5cch5pcc。如果成功,此模組將會使用 show 參數呼叫編譯器,以查看編譯 HDF5 客戶端應用程式時使用的標誌。

此模組會選擇性地接受 COMPONENTS 參數。如果未指定任何 COMPONENTS,則尋找模組將預設僅尋找 HDF5 C 函式庫。如果指定一個或多個 COMPONENTS,則模組將嘗試尋找指定組件的語言綁定。有效的組件為 CCXXFortranHLHL 指的是 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 FortranHL。對於每個啟用的語言綁定,將會定義對應的 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