Skip to content

Commit

Permalink
Split spqr and cholmod lib components
Browse files Browse the repository at this point in the history
  • Loading branch information
peddie committed Sep 21, 2023
1 parent ee8103b commit 61295a0
Showing 1 changed file with 37 additions and 16 deletions.
53 changes: 37 additions & 16 deletions Findsuitesparse.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
if (TARGET suitesparse::suitesparse)
if (TARGET suitesparse::cholmod OR TARGET suitesparse::spqr)
return()
endif()

Expand All @@ -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 ()

0 comments on commit 61295a0

Please sign in to comment.