CMakeLists.txt 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
  2. cmake_policy(VERSION 2.6)
  3. project(glm)
  4. enable_testing()
  5. add_definitions(-D_CRT_SECURE_NO_WARNINGS)
  6. option(GLM_TEST_ENABLE "GLM test" OFF)
  7. if(NOT GLM_TEST_ENABLE)
  8. message(FATAL_ERROR "GLM is a header only library, no need to build it. Set the option GLM_TEST_ENABLE with ON to build and run the test bench")
  9. endif()
  10. option(GLM_TEST_ENABLE_CXX_11 "Enable C++ 11" OFF)
  11. if(GLM_TEST_ENABLE_CXX_11)
  12. if(CMAKE_COMPILER_IS_GNUCXX)
  13. add_definitions(-std=c++0x)
  14. endif()
  15. elseif(NOT GLM_TEST_ENABLE_CXX_11)
  16. if(CMAKE_COMPILER_IS_GNUCXX)
  17. add_definitions(-std=c++98)
  18. endif()
  19. endif()
  20. option(GLM_TEST_ENABLE_MS_EXTENSIONS "Enable MS extensions" OFF)
  21. if(GLM_TEST_ENABLE_MS_EXTENSIONS)
  22. if(CMAKE_COMPILER_IS_GNUCXX)
  23. #Doesn't seem to work...
  24. #add_definitions(-fms-extensions)
  25. #add_definitions(-D_MSC_EXTENSIONS)
  26. endif()
  27. elseif(NOT GLM_TEST_ENABLE_MS_EXTENSIONS)
  28. if(CMAKE_COMPILER_IS_GNUCXX)
  29. add_definitions(-std=c++98)
  30. add_definitions(-pedantic)
  31. endif()
  32. if(MSVC)
  33. add_definitions(/Za)
  34. endif()
  35. endif()
  36. option(GLM_TEST_ENABLE_SIMD "Enable SIMD optimizations" OFF)
  37. if(GLM_TEST_ENABLE_SIMD)
  38. if(CMAKE_COMPILER_IS_GNUCXX)
  39. add_definitions(-msse2)
  40. endif()
  41. if(MSVC)
  42. add_definitions(/arch:SSE2)
  43. endif()
  44. elseif(NOT GLM_TEST_ENABLE_SIMD)
  45. add_definitions(-DGLM_FORCE_PURE)
  46. if(CMAKE_COMPILER_IS_GNUCXX)
  47. add_definitions(-mfpmath=387)
  48. endif()
  49. endif()
  50. option(GLM_TEST_ENABLE_FAST_MATH "Enable fast math optimizations" OFF)
  51. if(GLM_TEST_ENABLE_FAST_MATH)
  52. if(CMAKE_COMPILER_IS_GNUCXX)
  53. add_definitions(-ffast-math)
  54. endif()
  55. if(MSVC)
  56. add_definitions(/fp:fast)
  57. endif()
  58. elseif(NOT GLM_TEST_ENABLE_FAST_MATH)
  59. if(MSVC)
  60. add_definitions(/fp:precise)
  61. endif()
  62. endif()
  63. if(CMAKE_COMPILER_IS_GNUCXX)
  64. #add_definitions(-S)
  65. #add_definitions(-s)
  66. #add_definitions(-m32)
  67. #add_definitions(-O3)
  68. #add_definitions(-fprofile-arcs -ftest-coverage) gcov
  69. #ctest_enable_coverage()
  70. endif()
  71. include_directories(".")
  72. include_directories("./test/external")
  73. add_subdirectory(glm)
  74. add_subdirectory(test)
  75. add_subdirectory(bench)
  76. add_subdirectory(doc)
  77. install(DIRECTORY glm DESTINATION include)