xref: /aosp_15_r20/external/eigen/blas/CMakeLists.txt (revision bf2c37156dfe67e5dfebd6d394bad8b2ab5804d4)
1*bf2c3715SXin Li
2*bf2c3715SXin Liproject(EigenBlas CXX)
3*bf2c3715SXin Li
4*bf2c3715SXin Liinclude(CheckLanguage)
5*bf2c3715SXin Licheck_language(Fortran)
6*bf2c3715SXin Liif(CMAKE_Fortran_COMPILER)
7*bf2c3715SXin Li  enable_language(Fortran)
8*bf2c3715SXin Li  set(EIGEN_Fortran_COMPILER_WORKS ON)
9*bf2c3715SXin Lielse()
10*bf2c3715SXin Li  set(EIGEN_Fortran_COMPILER_WORKS OFF)
11*bf2c3715SXin Liendif()
12*bf2c3715SXin Li
13*bf2c3715SXin Liadd_custom_target(blas)
14*bf2c3715SXin Li
15*bf2c3715SXin Liset(EigenBlas_SRCS  single.cpp double.cpp complex_single.cpp complex_double.cpp xerbla.cpp
16*bf2c3715SXin Li                    f2c/srotm.c   f2c/srotmg.c  f2c/drotm.c f2c/drotmg.c
17*bf2c3715SXin Li                    f2c/lsame.c   f2c/dspmv.c   f2c/ssbmv.c f2c/chbmv.c
18*bf2c3715SXin Li                    f2c/sspmv.c   f2c/zhbmv.c   f2c/chpmv.c f2c/dsbmv.c
19*bf2c3715SXin Li                    f2c/zhpmv.c   f2c/dtbmv.c   f2c/stbmv.c f2c/ctbmv.c
20*bf2c3715SXin Li                    f2c/ztbmv.c   f2c/d_cnjg.c  f2c/r_cnjg.c
21*bf2c3715SXin Li   )
22*bf2c3715SXin Li
23*bf2c3715SXin Liif (EIGEN_Fortran_COMPILER_WORKS)
24*bf2c3715SXin Li  set(EigenBlas_SRCS ${EigenBlas_SRCS} fortran/complexdots.f)
25*bf2c3715SXin Lielse()
26*bf2c3715SXin Li  set(EigenBlas_SRCS ${EigenBlas_SRCS} f2c/complexdots.c)
27*bf2c3715SXin Liendif()
28*bf2c3715SXin Li
29*bf2c3715SXin Liset(EIGEN_BLAS_TARGETS "")
30*bf2c3715SXin Li
31*bf2c3715SXin Liadd_library(eigen_blas_static ${EigenBlas_SRCS})
32*bf2c3715SXin Lilist(APPEND EIGEN_BLAS_TARGETS eigen_blas_static)
33*bf2c3715SXin Li
34*bf2c3715SXin Liif (EIGEN_BUILD_SHARED_LIBS)
35*bf2c3715SXin Li  add_library(eigen_blas SHARED ${EigenBlas_SRCS})
36*bf2c3715SXin Li  list(APPEND EIGEN_BLAS_TARGETS eigen_blas)
37*bf2c3715SXin Liendif()
38*bf2c3715SXin Li
39*bf2c3715SXin Liforeach(target IN LISTS EIGEN_BLAS_TARGETS)
40*bf2c3715SXin Li  if(EIGEN_STANDARD_LIBRARIES_TO_LINK_TO)
41*bf2c3715SXin Li      target_link_libraries(${target} ${EIGEN_STANDARD_LIBRARIES_TO_LINK_TO})
42*bf2c3715SXin Li  endif()
43*bf2c3715SXin Li
44*bf2c3715SXin Li  add_dependencies(blas ${target})
45*bf2c3715SXin Li  install(TARGETS ${target}
46*bf2c3715SXin Li          RUNTIME DESTINATION bin
47*bf2c3715SXin Li          LIBRARY DESTINATION lib
48*bf2c3715SXin Li          ARCHIVE DESTINATION lib)
49*bf2c3715SXin Liendforeach()
50*bf2c3715SXin Li
51*bf2c3715SXin Liif(EIGEN_Fortran_COMPILER_WORKS)
52*bf2c3715SXin Li
53*bf2c3715SXin Liif(BUILD_TESTING)
54*bf2c3715SXin Li  if(EIGEN_LEAVE_TEST_IN_ALL_TARGET)
55*bf2c3715SXin Li    add_subdirectory(testing) # can't do EXCLUDE_FROM_ALL here, breaks CTest
56*bf2c3715SXin Li  else()
57*bf2c3715SXin Li    add_subdirectory(testing EXCLUDE_FROM_ALL)
58*bf2c3715SXin Li  endif()
59*bf2c3715SXin Liendif()
60*bf2c3715SXin Li
61*bf2c3715SXin Liendif()
62*bf2c3715SXin Li
63