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.9 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. include_directories(${PROJECT_SOURCE_DIR})
  2. include_directories(${PROJECT_BINARY_DIR})
  3. enable_language(Fortran)
  4. if (CMAKE_Fortran_COMPILER_ID STREQUAL GNU)
  5. set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fno-tree-vectorize")
  6. endif()
  7. if (CMAKE_Fortran_COMPILER_ID STREQUAL Flang)
  8. set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -O2")
  9. endif()
  10. if (BUILD_SINGLE)
  11. list( APPEND OpenBLAS_Tests sblat1 sblat2 sblat3)
  12. endif()
  13. if (BUILD_DOUBLE)
  14. list (APPEND OpenBLAS_Tests dblat1 dblat2 dblat3)
  15. endif()
  16. if (BUILD_COMPLEX)
  17. list (APPEND OpenBLAS_Tests cblat1 cblat2 cblat3)
  18. endif()
  19. if (BUILD_COMPLEX16)
  20. list (APPEND OpenBLAS_Tests zblat1 zblat2 zblat3)
  21. endif()
  22. if (USE_GEMM3M)
  23. if (BUILD_COMPLEX)
  24. list (APPEND OpenBLAS_Tests cblat3_3m)
  25. endif ()
  26. if (BUILD_COMPLEX16)
  27. list (APPEND OpenBLAS_Tests zblat3_3m)
  28. endif ()
  29. endif ()
  30. foreach(test_bin ${OpenBLAS_Tests})
  31. add_executable(${test_bin} ${test_bin}.f)
  32. target_link_libraries(${test_bin} ${OpenBLAS_LIBNAME})
  33. endforeach()
  34. # $1 exec, $2 input, $3 output_result
  35. if(WIN32)
  36. FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/test_helper.ps1
  37. "[Console]::InputEncoding = New-Object Text.UTF8Encoding $false\n"
  38. "if (Test-Path $args[2]) { Remove-Item -Force $args[2] } \n"
  39. "$ErrorActionPreference = \"Stop\"\n"
  40. "Get-Content $args[1] | & $args[0]\n"
  41. "If ((Get-Content $args[2] | %{$_ -match \"FATAL\"}) -contains $true) {\n"
  42. "echo Error\n"
  43. "exit 1\n"
  44. "} else {\n"
  45. "exit 0\n"
  46. "}\n"
  47. )
  48. set(helper_prefix powershell -ExecutionPolicy Bypass "${CMAKE_CURRENT_BINARY_DIR}/test_helper.ps1")
  49. else()
  50. FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/test_helper.sh
  51. "rm -f $3\n"
  52. "$1 < $2\n"
  53. "grep -q FATAL $3\n"
  54. "if [ $? -eq 0 ]; then\n"
  55. "echo Error\n"
  56. "exit 1\n"
  57. "else\n"
  58. "exit 0\n"
  59. "fi\n"
  60. )
  61. set(helper_prefix sh "${CMAKE_CURRENT_BINARY_DIR}/test_helper.sh")
  62. endif()
  63. #set(float_types s d c z)
  64. if (BUILD_SINGLE)
  65. list (APPEND float_types s)
  66. endif()
  67. if (BUILD_DOUBLE)
  68. list (APPEND float_types d)
  69. endif()
  70. if (BUILD_COMPLEX)
  71. list (APPEND float_types c)
  72. endif()
  73. if (BUILD_COMPLEX16)
  74. list (APPEND float_types z)
  75. endif()
  76. foreach(float_type ${float_types})
  77. string(TOUPPER ${float_type} float_type_upper)
  78. add_test(NAME "${float_type}blas1"
  79. COMMAND $<TARGET_FILE:${float_type}blat1>)
  80. add_test(NAME "${float_type}blas2"
  81. COMMAND ${helper_prefix} $<TARGET_FILE:${float_type}blat2> "${PROJECT_SOURCE_DIR}/test/${float_type}blat2.dat" ${float_type_upper}BLAT2.SUMM)
  82. add_test(NAME "${float_type}blas3"
  83. COMMAND ${helper_prefix} $<TARGET_FILE:${float_type}blat3> "${PROJECT_SOURCE_DIR}/test/${float_type}blat3.dat" ${float_type_upper}BLAT3.SUMM)
  84. if (USE_GEMM3M)
  85. if ((${float_type} STREQUAL "c") OR (${float_type} STREQUAL "z"))
  86. add_test(NAME "${float_type}blas3_3m"
  87. COMMAND ${helper_prefix} $<TARGET_FILE:${float_type}blat3_3m> "${PROJECT_SOURCE_DIR}/test/${float_type}blat3_3m.dat" ${float_type_upper}BLAT3_3M.SUMM)
  88. endif()
  89. endif()
  90. endforeach()