1*bf2c3715SXin Li 2*bf2c3715SXin Li 3*bf2c3715SXin Liset(BLAS_FOUND TRUE) 4*bf2c3715SXin Liset(LAPACK_FOUND TRUE) 5*bf2c3715SXin Liset(BLAS_LIBRARIES eigen_blas_static) 6*bf2c3715SXin Liset(LAPACK_LIBRARIES eigen_lapack_static) 7*bf2c3715SXin Li 8*bf2c3715SXin Liset(SPARSE_LIBS "") 9*bf2c3715SXin Li 10*bf2c3715SXin Li# find_library(PARDISO_LIBRARIES pardiso412-GNU450-X86-64) 11*bf2c3715SXin Li# if(PARDISO_LIBRARIES) 12*bf2c3715SXin Li# add_definitions("-DEIGEN_PARDISO_SUPPORT") 13*bf2c3715SXin Li# set(SPARSE_LIBS ${SPARSE_LIBS} ${PARDISO_LIBRARIES}) 14*bf2c3715SXin Li# endif() 15*bf2c3715SXin Li 16*bf2c3715SXin Lifind_package(CHOLMOD) 17*bf2c3715SXin Liif(CHOLMOD_FOUND AND BLAS_FOUND AND LAPACK_FOUND) 18*bf2c3715SXin Li add_definitions("-DEIGEN_CHOLMOD_SUPPORT") 19*bf2c3715SXin Li include_directories(${CHOLMOD_INCLUDES}) 20*bf2c3715SXin Li set(SPARSE_LIBS ${SPARSE_LIBS} ${CHOLMOD_LIBRARIES} ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES}) 21*bf2c3715SXin Li set(CHOLMOD_ALL_LIBS ${CHOLMOD_LIBRARIES} ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES}) 22*bf2c3715SXin Liendif() 23*bf2c3715SXin Li 24*bf2c3715SXin Lifind_package(UMFPACK) 25*bf2c3715SXin Liif(UMFPACK_FOUND AND BLAS_FOUND) 26*bf2c3715SXin Li add_definitions("-DEIGEN_UMFPACK_SUPPORT") 27*bf2c3715SXin Li include_directories(${UMFPACK_INCLUDES}) 28*bf2c3715SXin Li set(SPARSE_LIBS ${SPARSE_LIBS} ${UMFPACK_LIBRARIES} ${BLAS_LIBRARIES}) 29*bf2c3715SXin Li set(UMFPACK_ALL_LIBS ${UMFPACK_LIBRARIES} ${BLAS_LIBRARIES}) 30*bf2c3715SXin Liendif() 31*bf2c3715SXin Li 32*bf2c3715SXin Lifind_package(KLU) 33*bf2c3715SXin Liif(KLU_FOUND) 34*bf2c3715SXin Li add_definitions("-DEIGEN_KLU_SUPPORT") 35*bf2c3715SXin Li include_directories(${KLU_INCLUDES}) 36*bf2c3715SXin Li set(SPARSE_LIBS ${SPARSE_LIBS} ${KLU_LIBRARIES}) 37*bf2c3715SXin Liendif() 38*bf2c3715SXin Li 39*bf2c3715SXin Lifind_package(SuperLU 4.0) 40*bf2c3715SXin Liif(SuperLU_FOUND AND BLAS_FOUND) 41*bf2c3715SXin Li add_definitions("-DEIGEN_SUPERLU_SUPPORT") 42*bf2c3715SXin Li include_directories(${SUPERLU_INCLUDES}) 43*bf2c3715SXin Li set(SPARSE_LIBS ${SPARSE_LIBS} ${SUPERLU_LIBRARIES} ${BLAS_LIBRARIES}) 44*bf2c3715SXin Li set(SUPERLU_ALL_LIBS ${SUPERLU_LIBRARIES} ${BLAS_LIBRARIES}) 45*bf2c3715SXin Liendif() 46*bf2c3715SXin Li 47*bf2c3715SXin Li 48*bf2c3715SXin Lifind_package(PASTIX QUIET COMPONENTS METIS SCOTCH) 49*bf2c3715SXin Li# check that the PASTIX found is a version without MPI 50*bf2c3715SXin Lifind_path(PASTIX_pastix_nompi.h_INCLUDE_DIRS 51*bf2c3715SXin Li NAMES pastix_nompi.h 52*bf2c3715SXin Li HINTS ${PASTIX_INCLUDE_DIRS} 53*bf2c3715SXin Li) 54*bf2c3715SXin Liif (NOT PASTIX_pastix_nompi.h_INCLUDE_DIRS) 55*bf2c3715SXin Li message(STATUS "A version of Pastix has been found but pastix_nompi.h does not exist in the include directory." 56*bf2c3715SXin Li " Because Eigen tests require a version without MPI, we disable the Pastix backend.") 57*bf2c3715SXin Liendif() 58*bf2c3715SXin Liif(PASTIX_FOUND AND PASTIX_pastix_nompi.h_INCLUDE_DIRS AND BLAS_FOUND) 59*bf2c3715SXin Li add_definitions("-DEIGEN_PASTIX_SUPPORT") 60*bf2c3715SXin Li include_directories(${PASTIX_INCLUDE_DIRS_DEP}) 61*bf2c3715SXin Li if(SCOTCH_FOUND) 62*bf2c3715SXin Li include_directories(${SCOTCH_INCLUDE_DIRS}) 63*bf2c3715SXin Li set(PASTIX_LIBRARIES ${PASTIX_LIBRARIES} ${SCOTCH_LIBRARIES}) 64*bf2c3715SXin Li elseif(METIS_FOUND) 65*bf2c3715SXin Li include_directories(${METIS_INCLUDE_DIRS}) 66*bf2c3715SXin Li set(PASTIX_LIBRARIES ${PASTIX_LIBRARIES} ${METIS_LIBRARIES}) 67*bf2c3715SXin Li endif() 68*bf2c3715SXin Li set(SPARSE_LIBS ${SPARSE_LIBS} ${PASTIX_LIBRARIES_DEP} ${ORDERING_LIBRARIES}) 69*bf2c3715SXin Li set(PASTIX_ALL_LIBS ${PASTIX_LIBRARIES_DEP}) 70*bf2c3715SXin Liendif() 71*bf2c3715SXin Li 72*bf2c3715SXin Liif(METIS_FOUND) 73*bf2c3715SXin Li include_directories(${METIS_INCLUDE_DIRS}) 74*bf2c3715SXin Li set (SPARSE_LIBS ${SPARSE_LIBS} ${METIS_LIBRARIES}) 75*bf2c3715SXin Li add_definitions("-DEIGEN_METIS_SUPPORT") 76*bf2c3715SXin Liendif() 77*bf2c3715SXin Li 78*bf2c3715SXin Lifind_library(RT_LIBRARY rt) 79*bf2c3715SXin Liif(RT_LIBRARY) 80*bf2c3715SXin Li set(SPARSE_LIBS ${SPARSE_LIBS} ${RT_LIBRARY}) 81*bf2c3715SXin Liendif() 82*bf2c3715SXin Li 83*bf2c3715SXin Liadd_executable(spbenchsolver spbenchsolver.cpp) 84*bf2c3715SXin Litarget_link_libraries (spbenchsolver ${SPARSE_LIBS}) 85*bf2c3715SXin Li 86*bf2c3715SXin Liadd_executable(spsolver sp_solver.cpp) 87*bf2c3715SXin Litarget_link_libraries (spsolver ${SPARSE_LIBS}) 88*bf2c3715SXin Li 89*bf2c3715SXin Li 90*bf2c3715SXin Liadd_executable(test_sparseLU test_sparseLU.cpp) 91*bf2c3715SXin Litarget_link_libraries (test_sparseLU ${SPARSE_LIBS}) 92*bf2c3715SXin Li 93