Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/cmake/Modules/FindPHDF5.cmake
3206 views
# - cmake script for finding PHDF5 libraries

#  PHDF5_INCLUDE_DIR        - user modifiable choice of where hdf5 headers are
#  PHDF5_LIBRARY            - user modifiable choice of where hdf5 library if
#  PHDF5HL_LIBRARY          - user modifiable choice of where hdf5 height level library is
#  or PHDF5_LIBRARIES       - user modifiable choice of where hdf5 & hdf5hl libraries are

# This module returns these variables for the rest of the project to use.
#
#  PHDF5_FOUND              - True if HDF5 found including required interfaces (see below)
#  PHDF5_LIBRARIES          - All hdf5 related libraries.
#  PHDF5_INCLUDE_DIR        - All directories to include.

# # handle the QUIETLY and REQUIRED arguments and set PHDF5_FOUND to TRUE
# if all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs)

# If PHDF5 & PHDF5_HL libraries are already defined, do nothing
IF(PHDF5_LIBRARIES AND PHDF5_INCLUDE_DIR)
   SET(PHDF5_FOUND TRUE)
   RETURN()
ELSEIF(PHDF5HL_LIBRARY AND PHDF5_LIBRARY AND PHDF5_INCLUDE_DIR)
   SET(PHDF5_LIBRARIES "${PHDF5HL_LIBRARY};${PHDF5_LIBRARY}" )
   SET(PHDF5_FOUND TRUE)
   RETURN()
ENDIF()

SET(PHDF5_FOUND FALSE)
SET(PHDF5INCLUDE
  "${PHDF5ROOT}/include"
  "$ENV{PHDF5ROOT}/include"
  "${PHDF5_ROOT}/include"
  "$ENV{PHDF5_ROOT}/include"
  INTERNAL
  )

FIND_PATH(PHDF5_INCLUDE_DIR
  hdf5.h 
  HINTS 
  ${PHDF5INCLUDE}
  )

SET(PHDF5LIB 
  "${PHDF5ROOT}/lib"
  "$ENV{PHDF5ROOT}/lib"
  "${PHDF5_ROOT}/lib"
  "$ENV{PHDF5_ROOT}/lib"
  INTERNAL)

SET(PHDF5HLLIB 
  "${PHDF5ROOT}/lib"
  "$ENV{PHDF5ROOT}/lib"
  "${PHDF5_ROOT}/lib"
  "$ENV{PHDF5_ROOT}/lib"
  INTERNAL)

FIND_LIBRARY(PHDF5_LIBRARY hdf5 HINTS ${PHDF5LIB})
FIND_LIBRARY(PHDF5HL_LIBRARY hdf5_hl HINTS ${PHDF5HLLIB})

IF (PHDF5_INCLUDE_DIR AND PHDF5_LIBRARY AND PHDF5HL_LIBRARY)
  UNSET(PHDF5_FAILMSG)
  SET(PHDF5LIB_FOUND TRUE)
  SET(PHDF5_INCLUDE_DIR ${PHDF5_INCLUDE_DIR})
  SET(PHDF5_LIBRARIES "${PHDF5_LIBRARY};${PHDF5HL_LIBRARY}")
ELSE()
  SET(PHDF5_FAILMSG "PHDF5 libraries not found.")
ENDIF()

IF (NOT PHDF5_FAILMSG)
  SET(PHDF5_FOUND TRUE)
ENDIF()

MARK_AS_ADVANCED(
  PHDF5INCLUDE
  PHDF5LIB
  PHDF5_FAILMSG
  PHDF5_INCLUDE_DIR
  PHDF5_LIBRARIES
  PHDF5_LIBRARY
  PHDF5HL_LIBRARY)