blob: e470cb2e0e502b432625d7813e07c1c42da2f3b1 [file] [log] [blame]
Austin Schuhc55b0172022-02-20 17:52:35 -08001# CHOLMOD lib usually requires linking to a blas and lapack library.
Brian Silverman72890c22015-09-19 14:37:37 -04002# It is up to the user of this module to find a BLAS and link to it.
3
4if (CHOLMOD_INCLUDES AND CHOLMOD_LIBRARIES)
5 set(CHOLMOD_FIND_QUIETLY TRUE)
Austin Schuhc55b0172022-02-20 17:52:35 -08006endif ()
Brian Silverman72890c22015-09-19 14:37:37 -04007
8find_path(CHOLMOD_INCLUDES
9 NAMES
10 cholmod.h
11 PATHS
12 $ENV{CHOLMODDIR}
13 ${INCLUDE_INSTALL_DIR}
14 PATH_SUFFIXES
15 suitesparse
16 ufsparse
17)
18
19find_library(CHOLMOD_LIBRARIES cholmod PATHS $ENV{CHOLMODDIR} ${LIB_INSTALL_DIR})
20
21if(CHOLMOD_LIBRARIES)
22
23 get_filename_component(CHOLMOD_LIBDIR ${CHOLMOD_LIBRARIES} PATH)
24
25 find_library(AMD_LIBRARY amd PATHS ${CHOLMOD_LIBDIR} $ENV{CHOLMODDIR} ${LIB_INSTALL_DIR})
26 if (AMD_LIBRARY)
27 set(CHOLMOD_LIBRARIES ${CHOLMOD_LIBRARIES} ${AMD_LIBRARY})
28 else ()
29 set(CHOLMOD_LIBRARIES FALSE)
30 endif ()
31
Austin Schuhc55b0172022-02-20 17:52:35 -080032endif()
Brian Silverman72890c22015-09-19 14:37:37 -040033
34if(CHOLMOD_LIBRARIES)
35
36 find_library(COLAMD_LIBRARY colamd PATHS ${CHOLMOD_LIBDIR} $ENV{CHOLMODDIR} ${LIB_INSTALL_DIR})
37 if (COLAMD_LIBRARY)
38 set(CHOLMOD_LIBRARIES ${CHOLMOD_LIBRARIES} ${COLAMD_LIBRARY})
39 else ()
40 set(CHOLMOD_LIBRARIES FALSE)
41 endif ()
42
Austin Schuhc55b0172022-02-20 17:52:35 -080043endif()
Brian Silverman72890c22015-09-19 14:37:37 -040044
45if(CHOLMOD_LIBRARIES)
46
47 find_library(CAMD_LIBRARY camd PATHS ${CHOLMOD_LIBDIR} $ENV{CHOLMODDIR} ${LIB_INSTALL_DIR})
48 if (CAMD_LIBRARY)
49 set(CHOLMOD_LIBRARIES ${CHOLMOD_LIBRARIES} ${CAMD_LIBRARY})
50 else ()
51 set(CHOLMOD_LIBRARIES FALSE)
52 endif ()
53
Austin Schuhc55b0172022-02-20 17:52:35 -080054endif()
Brian Silverman72890c22015-09-19 14:37:37 -040055
56if(CHOLMOD_LIBRARIES)
57
58 find_library(CCOLAMD_LIBRARY ccolamd PATHS ${CHOLMOD_LIBDIR} $ENV{CHOLMODDIR} ${LIB_INSTALL_DIR})
59 if (CCOLAMD_LIBRARY)
60 set(CHOLMOD_LIBRARIES ${CHOLMOD_LIBRARIES} ${CCOLAMD_LIBRARY})
61 else ()
62 set(CHOLMOD_LIBRARIES FALSE)
63 endif ()
64
Austin Schuhc55b0172022-02-20 17:52:35 -080065endif()
Brian Silverman72890c22015-09-19 14:37:37 -040066
67if(CHOLMOD_LIBRARIES)
68
69 find_library(CHOLMOD_METIS_LIBRARY metis PATHS ${CHOLMOD_LIBDIR} $ENV{CHOLMODDIR} ${LIB_INSTALL_DIR})
70 if (CHOLMOD_METIS_LIBRARY)
71 set(CHOLMOD_LIBRARIES ${CHOLMOD_LIBRARIES} ${CHOLMOD_METIS_LIBRARY})
72 endif ()
73
Austin Schuhc55b0172022-02-20 17:52:35 -080074endif()
Brian Silverman72890c22015-09-19 14:37:37 -040075
76if(CHOLMOD_LIBRARIES)
77
78 find_library(SUITESPARSE_LIBRARY SuiteSparse PATHS ${CHOLMOD_LIBDIR} $ENV{CHOLMODDIR} ${LIB_INSTALL_DIR})
79 if (SUITESPARSE_LIBRARY)
80 set(CHOLMOD_LIBRARIES ${CHOLMOD_LIBRARIES} ${SUITESPARSE_LIBRARY})
Austin Schuhc55b0172022-02-20 17:52:35 -080081 endif ()
Brian Silverman72890c22015-09-19 14:37:37 -040082
Austin Schuhc55b0172022-02-20 17:52:35 -080083endif()
Brian Silverman72890c22015-09-19 14:37:37 -040084
85include(FindPackageHandleStandardArgs)
86find_package_handle_standard_args(CHOLMOD DEFAULT_MSG
87 CHOLMOD_INCLUDES CHOLMOD_LIBRARIES)
88
89mark_as_advanced(CHOLMOD_INCLUDES CHOLMOD_LIBRARIES AMD_LIBRARY COLAMD_LIBRARY SUITESPARSE_LIBRARY CAMD_LIBRARY CCOLAMD_LIBRARY CHOLMOD_METIS_LIBRARY)