-# Copyright (C) 2013-2016 CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2013-2021 CEA/DEN, EDF R&D, OPEN CASCADE
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# HDF5 detection for Salome
#
# !! Please read the generic detection procedure in SalomeMacros.cmake !!
-#
+#
# --- HDF5 specificities ----
# MPI root directory used for HDF5 compilation is exposed into MPI_ROOT_DIR_EXP
#
IF(HDF5_ROOT_DIR)
SET (HDF5_ROOT ${HDF5_ROOT_DIR})
+ IF(WIN32)
+ SET(HDF5_DIR ${HDF5_ROOT_DIR}/cmake/hdf5)
+ ENDIF()
ENDIF()
-SALOME_FIND_PACKAGE_AND_DETECT_CONFLICTS(HDF5 HDF5_INCLUDE_DIR 1)
+FIND_PACKAGE(HDF5)
MARK_AS_ADVANCED(FORCE HDF5_INCLUDE_DIR HDF5_LIB HDF5_DIR)
# Stupidly enough, CONFIG mode and MODULE mode for HDF5 do not return the same thing ...!
# Same story with libraries - if in CONFIG mode, HDF5_LIBRARIES is not defined:
IF(NOT DEFINED HDF5_LIBRARIES)
IF(TARGET hdf5)
- SET(HDF5_LIBRARIES hdf5)
+ SET(HDF5_C_LIBRARIES hdf5)
ELSEIF(TARGET hdf5::hdf5-shared)
- SET(HDF5_LIBRARIES hdf5::hdf5-shared)
+ SET(HDF5_C_LIBRARIES hdf5::hdf5-shared)
+ ENDIF()
+ IF(TARGET hdf5_cpp)
+ SET(HDF5_CXX_LIBRARIES hdf5_cpp)
+ ELSEIF(TARGET hdf5::hdf5_cpp-shared)
+ SET(HDF5_CXX_LIBRARIES hdf5::hdf5_cpp-shared)
ENDIF()
+ IF(TARGET hdf5_hl)
+ SET(HDF5_C_HL_LIBRARIES hdf5_hl)
+ ELSEIF(TARGET hdf5::hdf5_hl-shared)
+ SET(HDF5_C_HL_LIBRARIES hdf5::hdf5_hl-shared)
+ ENDIF()
+ IF(TARGET hdf5_hl_cpp)
+ SET(HDF5_CXX_HL_LIBRARIES hdf5_hl_cpp)
+ ELSEIF(TARGET hdf5::hdf5_hl_cpp-shared)
+ SET(HDF5_CXX_HL_LIBRARIES hdf5::hdf5_hl_cpp-shared)
+ ENDIF()
+ # Note: now we only set HDF5_LIBRARIES to CXX libraries as it's enough for SALOME.
+ # In future, we probably must list all libraries from requested components.
+ SET(HDF5_LIBRARIES ${HDF5_CXX_LIBRARIES})
ENDIF()
##
SET(_suffix "-shared")
SET(HDF5_LIBRARIES "${_target_prefix}hdf5${_suffix}")
ENDIF()
- GET_PROPERTY(_lib_lst TARGET ${HDF5_LIBRARIES} PROPERTY IMPORTED_LINK_INTERFACE_LIBRARIES_NOCONFIG)
+ GET_PROPERTY(_lib_lst SOURCE ${HDF5_LIBRARIES} PROPERTY IMPORTED_LINK_INTERFACE_LIBRARIES_NOCONFIG)
FOREACH(s ${_lib_lst})
STRING(FIND "${s}" "mpi." _res) # should cover WIN(?) and LINUX
IF(_res GREATER -1)
ENDFOREACH()
IF(NOT SalomeHDF5_FIND_QUIETLY)
MESSAGE(STATUS "HDF5 was compiled with MPI: ${MPI_ROOT_DIR_EXP}")
- ENDIF()
+ ENDIF()
ENDIF()
## Add definitions
MESSAGE(FATAL_ERROR "HDF5 is compiled with MPI, you have to set SALOME_USE_MPI to ON")
ENDIF()
-IF(HDF5_FOUND)
+IF(HDF5_FOUND)
SALOME_ACCUMULATE_HEADERS(HDF5_INCLUDE_DIRS)
SALOME_ACCUMULATE_ENVIRONMENT(LD_LIBRARY_PATH ${HDF5_LIBRARIES})
ENDIF()