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