CMakeLists.txt 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. include_directories(${ATOMIC_INCLUDE_DIRS})
  2. include_directories_exported(${CMAKE_CURRENT_SOURCE_DIR})
  3. file (GLOB CONTAINER_SOURCE Container/*.cpp Container/*.h)
  4. file (GLOB CORE_SOURCE Core/*.cpp Core/*.h)
  5. file (GLOB MATH_SOURCE Math/*.cpp Math/*.h)
  6. file (GLOB IO_SOURCE IO/*.cpp IO/*.h)
  7. file (GLOB ENGINE_SOURCE Engine/*.cpp Engine/*.h)
  8. file (GLOB INPUT_SOURCE Input/*.cpp Input/*.h)
  9. file (GLOB RESOURCE_SOURCE Resource/*.cpp Resource/*.h)
  10. file (GLOB AUDIO_SOURCE Audio/*.cpp Audio/*.h)
  11. file (GLOB NETWORK_SOURCE Network/*.cpp Network/*.h)
  12. file (GLOB WEB_SOURCE Web/*.cpp Web/*.h)
  13. file (GLOB SCRIPT_SOURCE Script/*.cpp Script/*.h)
  14. if (NOT EMSCRIPTEN AND NOT IOS AND NOT ANDROID)
  15. file (GLOB IPC_SOURCE IPC/*.cpp IPC/*.h)
  16. endif()
  17. file (GLOB ATOMIC2D_SOURCE Atomic2D/*.cpp Atomic2D/*.h)
  18. file (GLOB SCENE_SOURCE Scene/*.cpp Scene/*.h)
  19. file (GLOB UI_SOURCE UI/*.cpp UI/*.h)
  20. file (GLOB SYSTEM_UI_SOURCE UI/SystemUI/*.cpp UI/SystemUI/*.h)
  21. if (NOT ATOMIC_BUILD_2D)
  22. file (GLOB PHYSICS_SOURCE Physics/*.cpp Physics/*.h)
  23. file (GLOB NAVIGATION_SOURCE Navigation/*.cpp Navigation/*.h)
  24. file (GLOB ENVIRONMENT_SOURCE Environment/*.cpp Environment/*.h)
  25. endif()
  26. file (GLOB GRAPHICS_SOURCE Graphics/*.cpp Graphics/*.h)
  27. if (MSVC)
  28. if (ATOMIC_D3D11)
  29. file (GLOB GRAPHICS_IMPL_SOURCE Graphics/Direct3D11/*.cpp Graphics/Direct3D11/*.h)
  30. else()
  31. file (GLOB GRAPHICS_IMPL_SOURCE Graphics/Direct3D9/*.cpp Graphics/Direct3D9/*.h)
  32. endif()
  33. else()
  34. # for kNet
  35. add_definitions (-DUNIX)
  36. file (GLOB GRAPHICS_IMPL_SOURCE Graphics/OpenGL/*.cpp Graphics/OpenGL/*.h)
  37. endif()
  38. if (APPLE)
  39. if (NOT IOS)
  40. set (PLATFORM_SOURCE IO/MacFileWatcher.mm UI/UIDragDropMac.mm)
  41. else()
  42. endif()
  43. endif()
  44. set (SOURCE_FILES ${CONTAINER_SOURCE} ${CORE_SOURCE} ${ENGINE_SOURCE} ${INPUT_SOURCE}
  45. ${AUDIO_SOURCE} ${IO_SOURCE} ${MATH_SOURCE}
  46. ${RESOURCE_SOURCE} ${PHYSICS_SOURCE} ${IPC_SOURCE}
  47. ${GRAPHICS_SOURCE} ${GRAPHICS_IMPL_SOURCE}
  48. ${ATOMIC3D_SOURCE}
  49. ${ATOMIC2D_SOURCE} ${ENVIRONMENT_SOURCE}
  50. ${SCENE_SOURCE} ${UI_SOURCE} ${SYSTEM_UI_SOURCE}
  51. ${WEB_SOURCE} ${SCRIPT_SOURCE}
  52. ${PLATFORM_SOURCE})
  53. if (NOT EMSCRIPTEN)
  54. set (SOURCE_FILES ${SOURCE_FILES} ${NETWORK_SOURCE} ${NAVIGATION_SOURCE})
  55. endif()
  56. GroupSources("Atomic2D")
  57. GroupSources("Atomic3D")
  58. GroupSources("Audio")
  59. GroupSources("Container")
  60. GroupSources("Core")
  61. GroupSources("Engine")
  62. GroupSources("Environment")
  63. GroupSources("Graphics")
  64. GroupSources("Input")
  65. GroupSources("IO")
  66. GroupSources("IPC")
  67. GroupSources("Math")
  68. GroupSources("Navigation")
  69. GroupSources("Network")
  70. GroupSources("Physics")
  71. GroupSources("Resource")
  72. GroupSources("Scene")
  73. GroupSources("UI")
  74. GroupSources("Web")
  75. GroupSources("Script")
  76. GroupSources("BuildInfo")
  77. # Handle Git Revision
  78. include(GetGitRevisionDescription)
  79. get_git_head_revision(GIT_REFSPEC GIT_SHA1)
  80. configure_file("${CMAKE_CURRENT_SOURCE_DIR}/BuildInfo/AtomicGitSHA.cpp.in" "${CMAKE_CURRENT_SOURCE_DIR}/BuildInfo/AtomicGitSHA.cpp" @ONLY)
  81. set (SOURCE_FILES ${SOURCE_FILES} BuildInfo/AtomicBuildInfo.cpp BuildInfo/AtomicBuildInfo.h BuildInfo/AtomicGitSHA.cpp BuildInfo/AtomicGitSHA.h)
  82. add_library(Atomic ${SOURCE_FILES})
  83. include(AtomicDoc)