CMakeLists.txt 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. project (Atomic)
  2. cmake_minimum_required(VERSION 2.8.12.1)
  3. set (ATOMIC_SOURCE_DIR ${Atomic_SOURCE_DIR})
  4. set (CMAKE_MODULE_PATH ${ATOMIC_SOURCE_DIR}/Build/CMake/Modules)
  5. include(AtomicGit)
  6. include(AtomicUtils)
  7. include(AtomicCommon)
  8. add_definitions(-DATOMIC_ROOT_SOURCE_DIR="${ATOMIC_SOURCE_DIR}" -DATOMIC_ROOT_BUILD_DIR="${CMAKE_BINARY_DIR}")
  9. add_definitions( -DATOMIC_API= -DATOMIC_STATIC_DEFINE -DATOMIC_ATOMIC2D -DATOMIC_LOGGING -DATOMIC_PROFILING)
  10. if (NOT DEFINED ATOMIC_DEV_BUILD)
  11. set(ATOMIC_DEV_BUILD 1)
  12. ENDIF()
  13. if (ATOMIC_DEV_BUILD)
  14. add_definitions("-DATOMIC_DEV_BUILD=1")
  15. endif()
  16. # Disable until https://github.com/AtomicGameEngine/AtomicGameEngine/issues/554 is addressed
  17. # add_definitions("-DATOMIC_SOURCE_BUILD=1")
  18. # this is here as QtCreator is having trouble picking up #include <Atomic/*> without it
  19. include_directories(${ATOMIC_SOURCE_DIR}/Source ${ATOMIC_SOURCE_DIR}/Source/AtomicEditor/Source)
  20. add_link_libraries_exported (Atomic Box2D Duktape TurboBadger FreeType JO LZ4 PugiXml STB SDL)
  21. if (NOT ATOMIC_BUILD_2D)
  22. add_definitions_exported (-DATOMIC_PHYSICS -DATOMIC_3D)
  23. add_link_libraries_exported (Bullet StanHull)
  24. endif()
  25. if (NOT EMSCRIPTEN)
  26. add_definitions_exported (-DATOMIC_THREADING -DATOMIC_NETWORK)
  27. add_link_libraries_exported (Civetweb Recast Detour DetourCrowd DetourTileCache kNet libcurl)
  28. endif()
  29. add_definitions_exported (-DATOMIC_WEB)
  30. include (AtomicPlatform)
  31. find_program(CLDOC cldoc)
  32. if(CLDOC)
  33. add_custom_target(docs DEPENDS AtomicEngineDocs)
  34. endif()
  35. if (ATOMIC_WEBVIEW)
  36. if(APPLE)
  37. if(POLICY CMP0037)
  38. # new cmake doesn't like creating framework whose name has spaces
  39. # which CEF3 scripts (including shell) currently require on OSX
  40. cmake_policy(SET CMP0037 OLD)
  41. endif()
  42. set(CEF_ROOT "${ATOMIC_SOURCE_DIR}/Submodules/CEF/MacOSX")
  43. elseif(MSVC)
  44. if (ATOMIC_PROJECT_ARCH STREQUAL "x86")
  45. else()
  46. set(CEF_ROOT "${ATOMIC_SOURCE_DIR}/Submodules/CEF/Windows/64bit")
  47. endif()
  48. else()
  49. set(CEF_ROOT "${ATOMIC_SOURCE_DIR}/Submodules/CEF/Linux")
  50. endif()
  51. set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CEF_ROOT}/cmake")
  52. find_package(CEF REQUIRED)
  53. include_directories(${CEF_ROOT})
  54. add_subdirectory(${CEF_LIBCEF_DLL_WRAPPER_PATH} libcef_dll_wrapper)
  55. endif()
  56. add_definitions(${ATOMIC_DEFINITIONS})
  57. add_subdirectory(Source)
  58. if (ATOMIC_DESKTOP AND ATOMIC_DEV_BUILD)
  59. set (ATOMIC_CPLUSPLUS_EXAMPLES 1)
  60. if (ATOMIC_CPLUSPLUS_EXAMPLES)
  61. add_subdirectory(Submodules/AtomicExamples/FeatureExamples/CPlusPlus)
  62. endif()
  63. endif()