# CMake script for finding SPQR
# SPQR_INCLUDE_DIR - user modifiable choice of where to SPQR include dir
# SPQR_LIBRARY - user modifiable choice of where SPQR library is
# his module returns these variables for the rest of the project to use.
#
# SPQR_FOUND - True if SPQR found
# SPQR_INCLUDE_DIR - SPQR include dir.
# SPQR_LIBRARIES - needed SPQR libraries
# If SPQR libraries are already defined, do nothing
IF(SPQR_LIBRARIES AND SPQR_INCLUDE_DIR)
SET(SPQR_FOUND TRUE)
RETURN()
ENDIF()
# Try to find with CMake config file of upstream UMFPACK.
FIND_PACKAGE(SPQR CONFIG)
IF(SPQR_LIBRARIES AND SPQR_INCLUDE_DIR)
RETURN()
ENDIF()
# Fall back to manual search
INCLUDE(FindPackageHandleStandardArgs)
SET(SPQR_FOUND FALSE)
MESSAGE(STATUS "Finding SPQR")
SET(SPQRINCLUDE
"${SPQRROOT}/include"
"$ENV{SPQRROOT}/include"
"${SPQRROOT}/include/suitesparse"
"$ENV{SPQRROOT}/include/suitesparse"
"${SPQR_ROOT}/include"
"$ENV{SPQR_ROOT}/include"
"${SPQR_ROOT}/include/suitesparse"
"$ENV{SPQR_ROOT}/include/suitesparse"
"${CMAKE_SOURCE_DIR}/spqr/include"
INTERNAL
)
# Try to find SPQR
FIND_PATH(SPQR_INCLUDE_DIR
SuiteSparseQR_C.h
HINTS
${SPQRINCLUDE}
)
SET(SPQRLIB
"${SPQRROOT}/lib"
"$ENV{SPQRROOT}/lib"
"${SPQRROOT}/lib64"
"$ENV{SPQRROOT}/lib64"
"${SPQR_ROOT}/lib"
"$ENV{SPQR_ROOT}/lib"
"${SPQR_ROOT}/lib64"
"$ENV{SPQR_ROOT}/lib64"
"${CMAKE_SOURCE_DIR}/spqr/lib"
INTERNAL)
FIND_LIBRARY(SPQR_LIB spqr HINTS ${SPQRLIB})
IF (SPQR_INCLUDE_DIR AND SPQR_LIB)
UNSET(SPQR_FAILMSG)
SET(SPQRLIBS_FOUND TRUE)
SET(SPQR_LIBRARIES ${SPQR_LIB})
ELSE()
SET(SPQR_FAILMSG "SPQR library not found.")
ENDIF()
IF (NOT SPQR_FAILMSG)
SET(SPQR_FOUND TRUE)
ENDIF()
IF (SPQR_FOUND)
IF (NOT SPQR_FIND_QUIETLY)
MESSAGE(STATUS "A library with SPQR API found.")
MESSAGE(STATUS "SPQR include dir: ${SPQR_INCLUDE_DIR}")
MESSAGE(STATUS "SPQR libraries: ${SPQR_LIBRARIES}")
ENDIF()
ELSE()
IF (SPQR_FIND_REQUIRED)
MESSAGE(FATAL_ERROR ${SPQR_FAILMSG})
ENDIF()
ENDIF()
MARK_AS_ADVANCED(
SPQRINCLUDE
SPQRLIB
SPQR_FAILMSG
SPQR_FOUND
SPQR_INCLUDE_DIR
SPQR_LIBRARIES)