CMakeLists.txt 3.4 KB

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