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