# CMake script for finding Hypre
# Juhani Kataja, CSC - IT Center for Science Ltd.
# 2014/08
#
# Hint variables:
# * HYPREROOT (env, cmake)
# * HYPRE_ROOT (env, cmake)
# * HYPRE_INCLUDE_DIR (cmake)
# * HYPRE_LIBRARY_DIR (cmake)
# If Hypre libraries are already defined, do nothing
IF(Hypre_LIBRARIES)
IF(Hypre_INCLUDE_DIR)
SET(Hypre_FOUND TRUE)
RETURN()
ENDIF()
ENDIF()
set(Hypre_FOUND FALSE)
find_path(Hypre_INCLUDE_DIR NAMES HYPRE.h
HINTS
"${HYPREROOT}/include"
"$ENV{HYPREROOT}/include"
"${HYPRE_ROOT}/include"
"$ENV{HYPRE_ROOT}/include"
"${HYPRE_INCLUDE_DIR}"
"${CMAKE_SOURCE_DIR}/hypre/include"
)
find_library(Hypre_LIBRARY NAMES HYPRE
HINTS
"${HYPREROOT}/lib"
"$ENV{HYPREROOT}/lib"
"${HYPRE_ROOT}/lib"
"$ENV{HYPRE_ROOT}/lib"
"${HYPRE_LIBRARY_DIR}"
"${CMAKE_SOURCE_DIR}/hypre/lib"
)
list(APPEND Hypre_LIBRARIES ${Hypre_LIBRARY})
unset(Hypre_LIBRARY CACHE)
foreach(_comp ${Hypre_FIND_COMPONENTS})
find_library(_Hypre_LIB NAMES HYPRE_${_comp}
HINTS
"${HYPREROOT}/lib"
"$ENV{HYPREROOT}/lib"
"${HYPRE_LIBRARY_DIR}"
)
IF(NOT _Hypre_LIB)
IF(${Hypre_FIND_REQUIRED})
IF(${Hypre_FIND_REQUIRED_${_comp}})
MESSAGE(FATAL_ERROR "HYPRE_${_comp}: ${_Hypre_LIB_${_comp}}")
ENDIF()
ENDIF()
ENDIF()
IF(_Hypre_LIB)
list(APPEND Hypre_LIBRARIES ${_Hypre_LIB})
ENDIF()
unset(_Hypre_LIB CACHE)
endforeach()
IF(Hypre_INCLUDE_DIR AND Hypre_LIBRARIES)
SET(Hypre_FOUND TRUE)
ENDIF()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Hypre DEFAULT_MSG Hypre_LIBRARIES Hypre_INCLUDE_DIR)
set(Hypre_LIBRARIES ${Hypre_LIBRARIES} CACHE FILEPATH "Hypre Libraries")
MARK_AS_ADVANCED(Hypre_INCLUDE_DIR Hypre_LIBRARIES)