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.

os.cmake 2.8 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. ##
  2. ## Author: Hank Anderson <hank@statease.com>
  3. ## Description: Ported from portion of OpenBLAS/Makefile.system
  4. ## Detects the OS and sets appropriate variables.
  5. if (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
  6. set(ENV{MACOSX_DEPLOYMENT_TARGET} "10.2") # TODO: should be exported as an env var
  7. set(MD5SUM "md5 -r")
  8. endif ()
  9. if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
  10. set(MD5SUM "md5 -r")
  11. endif ()
  12. if (${CMAKE_SYSTEM_NAME} STREQUAL "NetBSD")
  13. set(MD5SUM "md5 -n")
  14. endif ()
  15. if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
  16. set(EXTRALIB "${EXTRALIB} -lm")
  17. set(NO_EXPRECISION 1)
  18. endif ()
  19. if (${CMAKE_SYSTEM_NAME} STREQUAL "AIX")
  20. set(EXTRALIB "${EXTRALIB} -lm")
  21. endif ()
  22. # TODO: this is probably meant for mingw, not other windows compilers
  23. if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
  24. set(NEED_PIC 0)
  25. set(NO_EXPRECISION 1)
  26. set(EXTRALIB "${EXTRALIB} -defaultlib:advapi32")
  27. # probably not going to use these
  28. set(SUFFIX "obj")
  29. set(PSUFFIX "pobj")
  30. set(LIBSUFFIX "a")
  31. if (${CMAKE_C_COMPILER_ID} STREQUAL "Clang")
  32. set(CCOMMON_OPT "${CCOMMON_OPT} -DMS_ABI")
  33. endif ()
  34. if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
  35. # Test for supporting MS_ABI
  36. # removed string parsing in favor of CMake's version comparison -hpa
  37. execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
  38. if (${GCC_VERSION} VERSION_GREATER 4.7 OR ${GCC_VERSION} VERSION_EQUAL 4.7)
  39. # GCC Version >=4.7
  40. # It is compatible with MSVC ABI.
  41. set(CCOMMON_OPT "${CCOMMON_OPT} -DMS_ABI")
  42. endif ()
  43. endif ()
  44. # Ensure the correct stack alignment on Win32
  45. # http://permalink.gmane.org/gmane.comp.lib.openblas.general/97
  46. if (${ARCH} STREQUAL "x86")
  47. set(CCOMMON_OPT "${CCOMMON_OPT} -mincoming-stack-boundary=2")
  48. set(FCOMMON_OPT "${FCOMMON_OPT} -mincoming-stack-boundary=2")
  49. endif ()
  50. endif ()
  51. if (${CMAKE_SYSTEM_NAME} STREQUAL "Interix")
  52. set(NEED_PIC 0)
  53. set(NO_EXPRECISION 1)
  54. set(INTERIX_TOOL_DIR STREQUAL "/opt/gcc.3.3/i586-pc-interix3/bin")
  55. endif ()
  56. if (CYGWIN)
  57. set(NEED_PIC 0)
  58. set(NO_EXPRECISION 1)
  59. endif ()
  60. if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows" AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Interix")
  61. if (SMP)
  62. set(EXTRALIB "${EXTRALIB} -lpthread")
  63. endif ()
  64. endif ()
  65. if (QUAD_PRECISION)
  66. set(CCOMMON_OPT "${CCOMMON_OPT} -DQUAD_PRECISION")
  67. set(NO_EXPRECISION 1)
  68. endif ()
  69. if (${ARCH} STREQUAL "x86")
  70. set(NO_EXPRECISION 1)
  71. endif ()
  72. if (UTEST_CHECK)
  73. set(CCOMMON_OPT "${CCOMMON_OPT} -DUTEST_CHECK")
  74. set(SANITY_CHECK 1)
  75. endif ()
  76. if (SANITY_CHECK)
  77. # TODO: need some way to get $(*F) (target filename)
  78. set(CCOMMON_OPT "${CCOMMON_OPT} -DSANITY_CHECK -DREFNAME=$(*F)f${BU}")
  79. endif ()