You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

CMakeLists.txt 2.4 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. include_directories(${CMAKE_SOURCE_DIR})
  2. # sources that need to be compiled twice, once with no flags and once with LOWER
  3. set(UL_SOURCES
  4. sbmv_k.c
  5. spmv_k.c
  6. spr_k.c
  7. spr2_k.c
  8. syr_k.c
  9. syr2_k.c
  10. )
  11. # sources that need to be compiled several times, for UNIT, TRANS
  12. set(NU_SOURCES
  13. tbmv_U.c
  14. tbsv_U.c
  15. tpmv_U.c
  16. tpsv_U.c
  17. trmv_U.c
  18. trsv_U.c
  19. tbmv_L.c
  20. tbsv_L.c
  21. tpmv_L.c
  22. tpsv_L.c
  23. trmv_L.c
  24. trsv_L.c
  25. )
  26. # first compile all the objects that don't need specific preprocessor defines
  27. add_library(DBLAS_NONE OBJECT
  28. gbmv_k.c # gbmv_N
  29. ${UL_SOURCES}
  30. ${NU_SOURCES}
  31. )
  32. # then do objects with transpose/triangular/etc definitions
  33. # objects that need TRANS set
  34. add_library(DBLAS_T OBJECT gbmv_k.c ${NU_SOURCES})
  35. set_target_properties(DBLAS_T PROPERTIES COMPILE_DEFINITIONS "TRANS")
  36. # objects that need LOWER set
  37. add_library(DBLAS_L OBJECT ${UL_SOURCES})
  38. set_target_properties(DBLAS_L PROPERTIES COMPILE_DEFINITIONS "LOWER")
  39. # objects that need UNIT set
  40. add_library(DBLAS_U OBJECT ${NU_SOURCES})
  41. set_target_properties(DBLAS_U PROPERTIES COMPILE_DEFINITIONS "UNIT")
  42. # objects that need TRANS and UNIT set
  43. add_library(DBLAS_TU OBJECT ${NU_SOURCES})
  44. set_target_properties(DBLAS_TU PROPERTIES COMPILE_DEFINITIONS "UNIT;TRANS")
  45. #if (DEFINED SMP)
  46. # add_library(DBLASOBJS_SMP
  47. # dgemv_thread_n.c dgemv_thread_t.c
  48. # dger_thread.c
  49. # dsymv_thread_U.c dsymv_thread_L.c
  50. # dsyr_thread_U.c dsyr_thread_L.c
  51. # dsyr2_thread_U.c dsyr2_thread_L.c
  52. # dspr_thread_U.c dspr_thread_L.c
  53. # dspr2_thread_U.c dspr2_thread_L.c
  54. # dtrmv_thread_NUU.c dtrmv_thread_NUN.c
  55. # dtrmv_thread_NLU.c dtrmv_thread_NLN.c
  56. # dtrmv_thread_TUU.c dtrmv_thread_TUN.c
  57. # dtrmv_thread_TLU.c dtrmv_thread_TLN.c
  58. # dspmv_thread_U.c dspmv_thread_L.c
  59. # dtpmv_thread_NUU.c dtpmv_thread_NUN.c
  60. # dtpmv_thread_NLU.c dtpmv_thread_NLN.c
  61. # dtpmv_thread_TUU.c dtpmv_thread_TUN.c
  62. # dtpmv_thread_TLU.c dtpmv_thread_TLN.c
  63. # dgbmv_thread_n.c dgbmv_thread_t.c
  64. # dsbmv_thread_U.c dsbmv_thread_L.c
  65. # dtbmv_thread_NUU.c dtbmv_thread_NUN.c
  66. # dtbmv_thread_NLU.c dtbmv_thread_NLN.c
  67. # dtbmv_thread_TUU.c dtbmv_thread_TUN.c
  68. # dtbmv_thread_TLU.c dtbmv_thread_TLN.c
  69. # )
  70. #endif ()
  71. set(DBLAS_TARGETS DBLAS_NONE DBLAS_T DBLAS_L DBLAS_U DBLAS_TU)
  72. foreach (DBLAS_TARGET ${DBLAS_TARGETS})
  73. set_target_properties(${DBLAS_TARGET} PROPERTIES COMPILE_DEFINITIONS DOUBLE)
  74. endforeach ()