xref: /aosp_15_r20/external/eigen/bench/spbench/CMakeLists.txt (revision bf2c37156dfe67e5dfebd6d394bad8b2ab5804d4)
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