CMakeLists.txt 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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) #DirectX 11
  29. file (GLOB GRAPHICS_IMPL_SOURCE Graphics/Direct3D11/*.cpp Graphics/Direct3D11/*.h)
  30. elseif (ATOMIC_OPENGL) #OpenGL
  31. file (GLOB GRAPHICS_IMPL_SOURCE Graphics/OpenGL/*.cpp Graphics/OpenGL/*.h)
  32. else() #DirectX 9
  33. file (GLOB GRAPHICS_IMPL_SOURCE Graphics/Direct3D9/*.cpp Graphics/Direct3D9/*.h)
  34. endif()
  35. else()
  36. # for kNet
  37. add_definitions (-DUNIX)
  38. file (GLOB GRAPHICS_IMPL_SOURCE Graphics/OpenGL/*.cpp Graphics/OpenGL/*.h)
  39. endif()
  40. if (APPLE)
  41. if (NOT IOS)
  42. set (PLATFORM_SOURCE IO/MacFileWatcher.mm UI/UIDragDropMac.mm)
  43. else()
  44. endif()
  45. endif()
  46. set (SOURCE_FILES ${CONTAINER_SOURCE} ${CORE_SOURCE} ${ENGINE_SOURCE} ${INPUT_SOURCE}
  47. ${AUDIO_SOURCE} ${IO_SOURCE} ${MATH_SOURCE}
  48. ${RESOURCE_SOURCE} ${PHYSICS_SOURCE} ${IPC_SOURCE}
  49. ${GRAPHICS_SOURCE} ${GRAPHICS_IMPL_SOURCE}
  50. ${ATOMIC3D_SOURCE}
  51. ${ATOMIC2D_SOURCE} ${ENVIRONMENT_SOURCE}
  52. ${SCENE_SOURCE} ${UI_SOURCE} ${SYSTEM_UI_SOURCE}
  53. ${WEB_SOURCE} ${SCRIPT_SOURCE}
  54. ${PLATFORM_SOURCE})
  55. if (NOT EMSCRIPTEN)
  56. set (SOURCE_FILES ${SOURCE_FILES} ${NETWORK_SOURCE} ${NAVIGATION_SOURCE})
  57. endif()
  58. GroupSources("Atomic2D")
  59. GroupSources("Atomic3D")
  60. GroupSources("Audio")
  61. GroupSources("Container")
  62. GroupSources("Core")
  63. GroupSources("Engine")
  64. GroupSources("Environment")
  65. GroupSources("Graphics")
  66. GroupSources("Input")
  67. GroupSources("IO")
  68. GroupSources("IPC")
  69. GroupSources("Math")
  70. GroupSources("Navigation")
  71. GroupSources("Network")
  72. GroupSources("Physics")
  73. GroupSources("Resource")
  74. GroupSources("Scene")
  75. GroupSources("UI")
  76. GroupSources("Web")
  77. GroupSources("Script")
  78. GroupSources("BuildInfo")
  79. # Handle Git Revision
  80. include(GetGitRevisionDescription)
  81. get_git_head_revision(GIT_REFSPEC GIT_SHA1)
  82. configure_file("${CMAKE_CURRENT_SOURCE_DIR}/BuildInfo/AtomicGitSHA.cpp.in" "${CMAKE_CURRENT_SOURCE_DIR}/BuildInfo/AtomicGitSHA.cpp" @ONLY)
  83. set (SOURCE_FILES ${SOURCE_FILES} BuildInfo/AtomicBuildInfo.cpp BuildInfo/AtomicBuildInfo.h BuildInfo/AtomicGitSHA.cpp BuildInfo/AtomicGitSHA.h)
  84. add_library(Atomic ${SOURCE_FILES})
  85. include(AtomicDoc)