CompilerOptimizations.cmake 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. check_c_compiler_flag(-ftree-vectorize HAS_TREE_VECTORIZE)
  2. check_cxx_compiler_flag(-ftree-vectorize HAS_CXX_TREE_VECTORIZE)
  3. if (HAS_TREE_VECTORISE)
  4. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ftree-vectorize")
  5. endif()
  6. if (HAS_CXX_TREE_VECTORISE)
  7. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftree-vectorize")
  8. endif()
  9. check_c_compiler_flag(-ffast-math HAS_FAST_MATH)
  10. check_cxx_compiler_flag(-ffast-math HAS_CXX_FAST_MATH)
  11. if (HAS_FAST_MATH)
  12. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ffast-math")
  13. endif()
  14. if (HAS_CXX_FAST_MATH)
  15. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ffast-math")
  16. endif()
  17. if(NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
  18. check_c_compiler_flag(-mfpmath=sse HAS_FPMATH_SSE)
  19. check_cxx_compiler_flag(-mfpmath=sse HAS_CXX_FPMATH_SSE)
  20. if (HAS_FPMATH_SSE)
  21. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpmath=sse")
  22. endif()
  23. if (HAS_CXX_FPMATH_SSE)
  24. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpmath=sse")
  25. endif()
  26. endif()
  27. check_c_compiler_flag(-msse2 HAS_SSE2)
  28. check_cxx_compiler_flag(-msse2 HAS_CXX_SSE2)
  29. if (HAS_SSE2)
  30. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse2")
  31. endif()
  32. if (HAS_CXX_SSE2)
  33. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse2")
  34. endif()
  35. check_c_compiler_flag(-fomit-frame-pointer HAS_OMIT_FRAME_POINTER)
  36. check_cxx_compiler_flag(-fomit-frame-pointer HAS_CXX_OMIT_FRAME_POINTER)
  37. if (HAS_OMIT_FRAME_POINTER)
  38. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fomit-frame-pointer")
  39. endif()
  40. if (HAS_CXX_OMIT_FRAME_POINTER)
  41. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fomit-frame-pointer")
  42. endif()