SetCompilerOptions.cmake 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. macro (SetCompilerOptions)
  2. set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCOCOS2D_DEBUG=1")
  3. set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
  4. # definitions for chipmunk
  5. if (USE_CHIPMUNK)
  6. add_definitions(-DCC_ENABLE_CHIPMUNK_INTEGRATION=1)
  7. if (IOS OR MACOSX)
  8. # without this chipmunk will try to use apple defined geometry types, that conflicts with cocos
  9. add_definitions(-DCP_USE_CGPOINTS=0)
  10. endif()
  11. else()
  12. add_definitions(-DCC_USE_PHYSICS=0)
  13. endif()
  14. # definitions for box2d
  15. if (USE_BOX2D)
  16. add_definitions(-DCC_ENABLE_BOX2D_INTEGRATION=1)
  17. else()
  18. add_definitions(-DCC_ENABLE_BOX2D_INTEGRATION=0)
  19. endif()
  20. # definitions for bullet
  21. if (USE_BULLET)
  22. add_definitions(-DCC_ENABLE_BULLET_INTEGRATION=1)
  23. add_definitions(-DCC_USE_3D_PHYSICS=1)
  24. else()
  25. add_definitions(-DCC_ENABLE_BULLET_INTEGRATION=0)
  26. add_definitions(-DCC_USE_3D_PHYSICS=0)
  27. endif()
  28. # definitions for recast
  29. if (USE_RECAST)
  30. add_definitions(-DCC_USE_NAVMESH=1)
  31. else()
  32. add_definitions(-DCC_USE_NAVMESH=0)
  33. endif()
  34. # Compiler options
  35. if(MSVC)
  36. add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS
  37. -wd4251 -wd4244 -wd4334 -wd4005 -wd4820 -wd4710
  38. -wd4514 -wd4056 -wd4996 -wd4099)
  39. # Use inline debug info (/Z7) format. Or internal error may occur.
  40. # Errors looks like: "xmemory0(592): error C3130: Internal Compiler Error: failed to write injected code block to PDB"
  41. foreach(lang C CXX)
  42. string(REGEX REPLACE "/Z[iI7]" "" CMAKE_${lang}_FLAGS_DEBUG "${CMAKE_${lang}_FLAGS_DEBUG}")
  43. set(CMAKE_${lang}_FLAGS_DEBUG "${CMAKE_${lang}_FLAGS_DEBUG} /Z7")
  44. endforeach()
  45. else()
  46. set(CMAKE_C_FLAGS_DEBUG "-g -Wall -Wextra")
  47. set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
  48. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -fPIC")
  49. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-deprecated-declarations -Wno-reorder -Wno-invalid-offsetof -fPIC")
  50. if(CLANG)
  51. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
  52. endif()
  53. endif(MSVC)
  54. # Some macro definitions
  55. if(WINDOWS)
  56. if(BUILD_SHARED_LIBS)
  57. add_definitions(-D_USRDLL -D_EXPORT_DLL_ -D_USEGUIDLL -D_USREXDLL -D_USRSTUDIODLL)
  58. else()
  59. add_definitions(-DCC_STATIC)
  60. endif()
  61. add_definitions(-DCOCOS2DXWIN32_EXPORTS -D_WINDOWS -DWIN32 -D_WIN32)
  62. set(PLATFORM_FOLDER win32)
  63. elseif(MACOSX OR APPLE)
  64. add_definitions(-DCC_TARGET_OS_MAC)
  65. add_definitions(-DUSE_FILE32API)
  66. set(PLATFORM_FOLDER mac)
  67. elseif(LINUX)
  68. add_definitions(-DLINUX)
  69. set(PLATFORM_FOLDER linux)
  70. elseif(ANDROID)
  71. add_definitions(-DUSE_FILE32API)
  72. set(PLATFORM_FOLDER android)
  73. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fexceptions")
  74. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char -latomic")
  75. else()
  76. message( FATAL_ERROR "Unsupported platform, CMake will exit" )
  77. return()
  78. endif()
  79. if(MINGW)
  80. #add_definitions(-DGLEW_STATIC)
  81. add_definitions(-D__SSIZE_T)
  82. if(CLANG)
  83. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ")
  84. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ")
  85. endif()
  86. endif()
  87. if (MINGW AND NOT USE_PREBUILT_LIBS)
  88. add_definitions(-DMINIZIP_FROM_SYSTEM)
  89. endif()
  90. endmacro (SetCompilerOptions)