CMakeLists.txt 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. CMAKE_MINIMUM_REQUIRED(VERSION 2.8.4)
  2. SET_PROPERTY(GLOBAL PROPERTY USE_FOLDERS ON)
  3. SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Cmake)
  4. SET(CMAKE_USE_RELATIVE_PATHS ON)
  5. IF(NOT CMAKE_BUILD_TYPE)
  6. SET(CMAKE_BUILD_TYPE "Debug")
  7. ENDIF()
  8. PROJECT(Cpp)
  9. OPTION(TESTS "Decide if the test suite shall be built or not" ON)
  10. OPTION(PROFILE "Use Google Perftool Profile" OFF)
  11. IF(TESTS)
  12. ENABLE_TESTING()
  13. ENDIF()
  14. INCLUDE_DIRECTORIES(Platform)
  15. INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/Platform)
  16. INCLUDE_DIRECTORIES(Game)
  17. INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/Game)
  18. INCLUDE_DIRECTORIES(ThirdParty)
  19. INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/ThirdParty)
  20. FIND_PACKAGE(Protobuf REQUIRED)
  21. INCLUDE_DIRECTORIES(${PROTOBUF_INCLUDE_DIR})
  22. LINK_DIRECTORIES(${PROTOBUF_LIBRARY_DIR})
  23. FIND_PACKAGE(Perftools REQUIRED)
  24. INCLUDE_DIRECTORIES(${PERFTOOLS_INCLUDE_DIR})
  25. LINK_DIRECTORIES(${PERFTOOLS_LIBRARY_DIR})
  26. FIND_PACKAGE(Boost REQUIRED thread system)
  27. SET(Boost_USE_STATIC_LIBS ON)
  28. SET(Boost_USE_MULTITHREADED ON)
  29. SET(Boost_USE_STATIC_RUNTIME OFF)
  30. INCLUDE_DIRECTORIES(${BOOST_INCLUDE_DIR})
  31. LINK_DIRECTORIES(${Boost_LIBRARY_DIR})
  32. SET(ThirdPartyLibs
  33. gtest
  34. gmock
  35. ${PROTOBUF_LIBRARIES}
  36. ${Boost_LIBRARIES}
  37. ${PERFTOOLS_DEBUG_LIBRARIES}
  38. )
  39. IF(PROFILE)
  40. SET(ThirdPartyLibs ${ThirdPartyLibs} ${PERFTOOLS_PROFILE_LIBRARIES})
  41. ENDIF()
  42. MESSAGE(STATUS "${ThirdPartyLibs}")
  43. IF(MSVC)
  44. SET(CMAKE_CXX_FLAGS_DEBUG "/MTd /Zi /WX /wd4244 /wd4267 /wd4018 /wd4355 /wd4800 /wd4251 /wd4996 /wd4146 /wd4305 /wd4819")
  45. SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /NODEFAULTLIB:libc.lib")
  46. SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /NODEFAULTLIB:libcmt.lib")
  47. SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /NODEFAULTLIB:msvcrt.lib")
  48. SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /NODEFAULTLIB:libcd.lib")
  49. SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /NODEFAULTLIB:msvcrtd.lib")
  50. SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /NODEFAULTLIB:msvcprtd.lib")
  51. ADD_DEFINITIONS(-DBOOST_ALL_NO_LIB -D_WIN32_WINNT=0x0501)
  52. ENDIF()
  53. ADD_SUBDIRECTORY(Platform)
  54. ADD_SUBDIRECTORY(Game)
  55. ADD_SUBDIRECTORY(ThirdParty)