1*bf2c3715SXin Li# CHOLMOD lib usually requires linking to a blas and lapack library. 2*bf2c3715SXin Li# It is up to the user of this module to find a BLAS and link to it. 3*bf2c3715SXin Li 4*bf2c3715SXin Liif (CHOLMOD_INCLUDES AND CHOLMOD_LIBRARIES) 5*bf2c3715SXin Li set(CHOLMOD_FIND_QUIETLY TRUE) 6*bf2c3715SXin Liendif () 7*bf2c3715SXin Li 8*bf2c3715SXin Lifind_path(CHOLMOD_INCLUDES 9*bf2c3715SXin Li NAMES 10*bf2c3715SXin Li cholmod.h 11*bf2c3715SXin Li PATHS 12*bf2c3715SXin Li $ENV{CHOLMODDIR} 13*bf2c3715SXin Li ${INCLUDE_INSTALL_DIR} 14*bf2c3715SXin Li PATH_SUFFIXES 15*bf2c3715SXin Li suitesparse 16*bf2c3715SXin Li ufsparse 17*bf2c3715SXin Li) 18*bf2c3715SXin Li 19*bf2c3715SXin Lifind_library(CHOLMOD_LIBRARIES cholmod PATHS $ENV{CHOLMODDIR} ${LIB_INSTALL_DIR}) 20*bf2c3715SXin Li 21*bf2c3715SXin Liif(CHOLMOD_LIBRARIES) 22*bf2c3715SXin Li 23*bf2c3715SXin Li get_filename_component(CHOLMOD_LIBDIR ${CHOLMOD_LIBRARIES} PATH) 24*bf2c3715SXin Li 25*bf2c3715SXin Li find_library(AMD_LIBRARY amd PATHS ${CHOLMOD_LIBDIR} $ENV{CHOLMODDIR} ${LIB_INSTALL_DIR}) 26*bf2c3715SXin Li if (AMD_LIBRARY) 27*bf2c3715SXin Li set(CHOLMOD_LIBRARIES ${CHOLMOD_LIBRARIES} ${AMD_LIBRARY}) 28*bf2c3715SXin Li else () 29*bf2c3715SXin Li set(CHOLMOD_LIBRARIES FALSE) 30*bf2c3715SXin Li endif () 31*bf2c3715SXin Li 32*bf2c3715SXin Liendif() 33*bf2c3715SXin Li 34*bf2c3715SXin Liif(CHOLMOD_LIBRARIES) 35*bf2c3715SXin Li 36*bf2c3715SXin Li find_library(COLAMD_LIBRARY colamd PATHS ${CHOLMOD_LIBDIR} $ENV{CHOLMODDIR} ${LIB_INSTALL_DIR}) 37*bf2c3715SXin Li if (COLAMD_LIBRARY) 38*bf2c3715SXin Li set(CHOLMOD_LIBRARIES ${CHOLMOD_LIBRARIES} ${COLAMD_LIBRARY}) 39*bf2c3715SXin Li else () 40*bf2c3715SXin Li set(CHOLMOD_LIBRARIES FALSE) 41*bf2c3715SXin Li endif () 42*bf2c3715SXin Li 43*bf2c3715SXin Liendif() 44*bf2c3715SXin Li 45*bf2c3715SXin Liif(CHOLMOD_LIBRARIES) 46*bf2c3715SXin Li 47*bf2c3715SXin Li find_library(CAMD_LIBRARY camd PATHS ${CHOLMOD_LIBDIR} $ENV{CHOLMODDIR} ${LIB_INSTALL_DIR}) 48*bf2c3715SXin Li if (CAMD_LIBRARY) 49*bf2c3715SXin Li set(CHOLMOD_LIBRARIES ${CHOLMOD_LIBRARIES} ${CAMD_LIBRARY}) 50*bf2c3715SXin Li else () 51*bf2c3715SXin Li set(CHOLMOD_LIBRARIES FALSE) 52*bf2c3715SXin Li endif () 53*bf2c3715SXin Li 54*bf2c3715SXin Liendif() 55*bf2c3715SXin Li 56*bf2c3715SXin Liif(CHOLMOD_LIBRARIES) 57*bf2c3715SXin Li 58*bf2c3715SXin Li find_library(CCOLAMD_LIBRARY ccolamd PATHS ${CHOLMOD_LIBDIR} $ENV{CHOLMODDIR} ${LIB_INSTALL_DIR}) 59*bf2c3715SXin Li if (CCOLAMD_LIBRARY) 60*bf2c3715SXin Li set(CHOLMOD_LIBRARIES ${CHOLMOD_LIBRARIES} ${CCOLAMD_LIBRARY}) 61*bf2c3715SXin Li else () 62*bf2c3715SXin Li set(CHOLMOD_LIBRARIES FALSE) 63*bf2c3715SXin Li endif () 64*bf2c3715SXin Li 65*bf2c3715SXin Liendif() 66*bf2c3715SXin Li 67*bf2c3715SXin Liif(CHOLMOD_LIBRARIES) 68*bf2c3715SXin Li 69*bf2c3715SXin Li find_library(CHOLMOD_METIS_LIBRARY metis PATHS ${CHOLMOD_LIBDIR} $ENV{CHOLMODDIR} ${LIB_INSTALL_DIR}) 70*bf2c3715SXin Li if (CHOLMOD_METIS_LIBRARY) 71*bf2c3715SXin Li set(CHOLMOD_LIBRARIES ${CHOLMOD_LIBRARIES} ${CHOLMOD_METIS_LIBRARY}) 72*bf2c3715SXin Li endif () 73*bf2c3715SXin Li 74*bf2c3715SXin Liendif() 75*bf2c3715SXin Li 76*bf2c3715SXin Liif(CHOLMOD_LIBRARIES) 77*bf2c3715SXin Li 78*bf2c3715SXin Li find_library(SUITESPARSE_LIBRARY SuiteSparse PATHS ${CHOLMOD_LIBDIR} $ENV{CHOLMODDIR} ${LIB_INSTALL_DIR}) 79*bf2c3715SXin Li if (SUITESPARSE_LIBRARY) 80*bf2c3715SXin Li set(CHOLMOD_LIBRARIES ${CHOLMOD_LIBRARIES} ${SUITESPARSE_LIBRARY}) 81*bf2c3715SXin Li endif () 82*bf2c3715SXin Li 83*bf2c3715SXin Liendif() 84*bf2c3715SXin Li 85*bf2c3715SXin Liinclude(FindPackageHandleStandardArgs) 86*bf2c3715SXin Lifind_package_handle_standard_args(CHOLMOD DEFAULT_MSG 87*bf2c3715SXin Li CHOLMOD_INCLUDES CHOLMOD_LIBRARIES) 88*bf2c3715SXin Li 89*bf2c3715SXin Limark_as_advanced(CHOLMOD_INCLUDES CHOLMOD_LIBRARIES AMD_LIBRARY COLAMD_LIBRARY SUITESPARSE_LIBRARY CAMD_LIBRARY CCOLAMD_LIBRARY CHOLMOD_METIS_LIBRARY) 90