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.

cc.cmake 3.6 kB

5 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. ##
  2. ## Author: Hank Anderson <hank@statease.com>
  3. ## Description: Ported from portion of OpenBLAS/Makefile.system
  4. ## Sets C related variables.
  5. if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU" OR ${CMAKE_C_COMPILER_ID} STREQUAL "LSB" OR ${CMAKE_C_COMPILER_ID} MATCHES "Clang")
  6. set(CCOMMON_OPT "${CCOMMON_OPT} -Wall")
  7. set(COMMON_PROF "${COMMON_PROF} -fno-inline")
  8. set(NO_UNINITIALIZED_WARN "-Wno-uninitialized")
  9. if (QUIET_MAKE)
  10. set(CCOMMON_OPT "${CCOMMON_OPT} ${NO_UNINITIALIZED_WARN} -Wno-unused")
  11. endif ()
  12. if (NO_BINARY_MODE)
  13. if (MIPS64)
  14. if (BINARY64)
  15. set(CCOMMON_OPT "${CCOMMON_OPT} -mabi=64")
  16. else ()
  17. set(CCOMMON_OPT "${CCOMMON_OPT} -mabi=n32")
  18. endif ()
  19. set(BINARY_DEFINED 1)
  20. endif ()
  21. if (${CORE} STREQUAL "LOONGSON3A" OR ${CORE} STREQUAL "LOONGSON3B")
  22. set(CCOMMON_OPT "${CCOMMON_OPT} -march=mips64")
  23. set(FCOMMON_OPT "${FCOMMON_OPT} -march=mips64")
  24. endif ()
  25. if (CMAKE_SYSTEM_NAME STREQUAL "AIX")
  26. set(BINARY_DEFINED 1)
  27. endif ()
  28. endif ()
  29. if (NOT BINARY_DEFINED)
  30. if (BINARY64)
  31. set(CCOMMON_OPT "${CCOMMON_OPT} -m64")
  32. else ()
  33. set(CCOMMON_OPT "${CCOMMON_OPT} -m32")
  34. endif ()
  35. endif ()
  36. endif ()
  37. if (${CMAKE_C_COMPILER_ID} STREQUAL "PGI")
  38. if (BINARY64)
  39. set(CCOMMON_OPT "${CCOMMON_OPT} -tp p7-64")
  40. else ()
  41. set(CCOMMON_OPT "${CCOMMON_OPT} -tp p7")
  42. endif ()
  43. endif ()
  44. if (${CMAKE_C_COMPILER_ID} STREQUAL "PATHSCALE")
  45. if (BINARY64)
  46. set(CCOMMON_OPT "${CCOMMON_OPT} -m64")
  47. else ()
  48. set(CCOMMON_OPT "${CCOMMON_OPT} -m32")
  49. endif ()
  50. endif ()
  51. if (${CMAKE_C_COMPILER_ID} STREQUAL "OPEN64")
  52. if (MIPS64)
  53. if (NOT BINARY64)
  54. set(CCOMMON_OPT "${CCOMMON_OPT} -n32")
  55. else ()
  56. set(CCOMMON_OPT "${CCOMMON_OPT} -n64")
  57. endif ()
  58. if (${CORE} STREQUAL "LOONGSON3A")
  59. set(CCOMMON_OPT "${CCOMMON_OPT} -loongson3 -static")
  60. endif ()
  61. if (${CORE} STREQUAL "LOONGSON3B")
  62. set(CCOMMON_OPT "${CCOMMON_OPT} -loongson3 -static")
  63. endif ()
  64. else ()
  65. if (BINARY64)
  66. set(CCOMMON_OPT "${CCOMMON_OPT} -m32")
  67. else ()
  68. set(CCOMMON_OPT "${CCOMMON_OPT} -m64")
  69. endif ()
  70. endif ()
  71. endif ()
  72. if (${CMAKE_C_COMPILER_ID} STREQUAL "SUN")
  73. set(CCOMMON_OPT "${CCOMMON_OPT} -w")
  74. if (X86)
  75. set(CCOMMON_OPT "${CCOMMON_OPT} -m32")
  76. else ()
  77. set(CCOMMON_OPT "${CCOMMON_OPT} -m64")
  78. endif ()
  79. endif ()
  80. if (${CORE} STREQUAL SKYLAKEX)
  81. if (NOT DYNAMIC_ARCH)
  82. if (NOT NO_AVX512)
  83. set (CCOMMON_OPT "${CCOMMON_OPT} -march=skylake-avx512")
  84. endif ()
  85. endif ()
  86. endif ()
  87. if (${CORE} STREQUAL COOPERLAKE)
  88. if (NOT DYNAMIC_ARCH)
  89. if (NOT NO_AVX512)
  90. execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
  91. if (${GCC_VERSION} VERSION_GREATER 10.1 OR ${GCC_VERSION} VERSION_EQUAL 10.1)
  92. set (CCOMMON_OPT "${CCOMMON_OPT} -march=cooperlake")
  93. else ()
  94. set (CCOMMON_OPT "${CCOMMON_OPT} -march=skylake-avx512")
  95. endif()
  96. endif ()
  97. endif ()
  98. endif ()
  99. if (NOT DYNAMIC_ARCH)
  100. if (HAVE_AVX2)
  101. set (CCOMMON_OPT "${CCOMMON_OPT} -mavx2")
  102. endif ()
  103. if (HAVE_AVX)
  104. set (CCOMMON_OPT "${CCOMMON_OPT} -mavx")
  105. endif ()
  106. if (HAVE_FMA3)
  107. set (CCOMMON_OPT "${CCOMMON_OPT} -mfma")
  108. endif ()
  109. if (HAVE_SSE)
  110. set (CCOMMON_OPT "${CCOMMON_OPT} -msse")
  111. endif ()
  112. if (HAVE_SSE2)
  113. set (CCOMMON_OPT "${CCOMMON_OPT} -msse2")
  114. endif ()
  115. if (HAVE_SSE3)
  116. set (CCOMMON_OPT "${CCOMMON_OPT} -msse3")
  117. endif ()
  118. if (HAVE_SSSE3)
  119. set (CCOMMON_OPT "${CCOMMON_OPT} -mssse3")
  120. endif ()
  121. if (HAVE_SSE4_1)
  122. set (CCOMMON_OPT "${CCOMMON_OPT} -msse4.1")
  123. endif ()
  124. endif()