diff --git a/Findsuitesparse.cmake b/Findsuitesparse.cmake index b0ed529..ab99dec 100644 --- a/Findsuitesparse.cmake +++ b/Findsuitesparse.cmake @@ -1,4 +1,4 @@ -if (TARGET suitesparse::suitesparse) +if (TARGET suitesparse::cholmod OR TARGET suitesparse::spqr) return() endif() @@ -12,36 +12,57 @@ if (APPLE) /opt/homebrew/Cellar/suite-sparse/* ) else () - file(GLOB SUITESPARSE_DIRS - /usr/include/suitesparse/* - ) + set(SUITESPARSE_DIRS /usr/include/suitesparse) endif() -find_path(suitesparse_INCLUDE_DIR - NAMES SuiteSparseQR.hpp cholmod.h +find_path(suitesparse_cholmod_INCLUDE_DIR + NAMES cholmod.h HINTS ${SUITESPARSE_DIRS} PATH_SUFFIXES include ) -find_library(suitesparse_LIBRARY - NAMES spqr cholmod +find_path(suitesparse_spqr_INCLUDE_DIR + NAMES SuiteSparseQR.hpp + HINTS ${SUITESPARSE_DIRS} + PATH_SUFFIXES include +) + +find_library(suitesparse_cholmod_LIBRARY + NAMES cholmod + HINTS ${SUITESPARSE_DIRS} + PATH_SUFFIXES lib +) + +find_library(suitesparse_spqr_LIBRARY + NAMES spqr HINTS ${SUITESPARSE_DIRS} PATH_SUFFIXES lib ) find_package_handle_standard_args(suitesparse REQUIRED_VARS - suitesparse_LIBRARY - suitesparse_INCLUDE_DIR + suitesparse_cholmod_LIBRARY + suitesparse_spqr_LIBRARY + suitesparse_cholmod_INCLUDE_DIR + suitesparse_spqr_INCLUDE_DIR ) if (suitesparse_FOUND) - mark_as_advanced(suitesparse_LIBRARY) - mark_as_advanced(suitesparse_INCLUDE_DIR) + mark_as_advanced(suitesparse_cholmod_LIBRARY) + mark_as_advanced(suitesparse_cholmod_INCLUDE_DIR) + + add_library(suitesparse::cholmod UNKNOWN IMPORTED) + set_target_properties(suitesparse::cholmod + PROPERTIES + IMPORTED_LOCATION ${suitesparse_cholmod_LIBRARY} + INTERFACE_INCLUDE_DIRECTORIES ${suitesparse_cholmod_INCLUDE_DIR} + ) - add_library(suitesparse::suitesparse UNKNOWN IMPORTED) - set_target_properties(suitesparse::suitesparse + mark_as_advanced(suitesparse_spqr_LIBRARY) + mark_as_advanced(suitesparse_spqr_INCLUDE_DIR) + add_library(suitesparse::spqr UNKNOWN IMPORTED) + set_target_properties(suitesparse::spqr PROPERTIES - IMPORTED_LOCATION ${suitesparse_LIBRARY} - INTERFACE_INCLUDE_DIRECTORIES ${suitesparse_INCLUDE_DIR} + IMPORTED_LOCATION ${suitesparse_spqr_LIBRARY} + INTERFACE_INCLUDE_DIRECTORIES ${suitesparse_spqr_INCLUDE_DIR} ) endif ()