CMakeLists.txt 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. include_directories(${CMAKE_CURRENT_SOURCE_DIR}
  2. ${CMAKE_SOURCE_DIR}/Source/ThirdParty
  3. ${CMAKE_SOURCE_DIR}/Source/ThirdParty/rapidjson/include
  4. ${CMAKE_SOURCE_DIR}/Source/ThirdParty/kNet/include
  5. ${CMAKE_SOURCE_DIR}/Source/ThirdParty/FreeType/include
  6. ${CMAKE_SOURCE_DIR}/Source/ThirdParty/Box2D)
  7. file (GLOB CONTAINER_SOURCE Container/*.cpp Container/*.h)
  8. file (GLOB CORE_SOURCE Core/*.cpp Core/*.h)
  9. file (GLOB MATH_SOURCE Math/*.cpp Math/*.h)
  10. file (GLOB ENGINE_SOURCE Engine/*.cpp Engine/*.h)
  11. file (GLOB INPUT_SOURCE Input/*.cpp Input/*.h)
  12. file (GLOB IO_SOURCE IO/*.cpp IO/*.h)
  13. file (GLOB RESOURCE_SOURCE Resource/*.cpp Resource/*.h)
  14. file (GLOB AUDIO_SOURCE Audio/*.cpp Audio/*.h)
  15. file (GLOB NETWORK_SOURCE Network/*.cpp Network/*.h)
  16. if (NOT EMSCRIPTEN AND NOT IOS AND NOT ANDROID)
  17. file (GLOB IPC_SOURCE IPC/*.cpp IPC/*.h)
  18. endif()
  19. file (GLOB ATOMIC2D_SOURCE Atomic2D/*.cpp Atomic2D/*.h)
  20. file (GLOB SCENE_SOURCE Scene/*.cpp Scene/*.h)
  21. file (GLOB UI_SOURCE UI/*.cpp UI/*.h)
  22. if (NOT ATOMIC_BUILD_2D)
  23. file (GLOB ATOMIC3D_SOURCE Atomic3D/*.cpp Atomic3D/*.h)
  24. file (GLOB PHYSICS_SOURCE Physics/*.cpp Physics/*.h)
  25. file (GLOB NAVIGATION_SOURCE Navigation/*.cpp Navigation/*.h)
  26. file (GLOB ENVIRONMENT_SOURCE Environment/*.cpp Environment/*.h)
  27. endif()
  28. file (GLOB GRAPHICS_SOURCE Graphics/*.cpp Graphics/*.h)
  29. if (MSVC)
  30. if (ATOMIC_D3D11)
  31. file (GLOB GRAPHICS_IMPL_SOURCE Graphics/Direct3D11/*.cpp Graphics/Direct3D11/*.h)
  32. else()
  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 (ANDROID)
  41. endif()
  42. if (APPLE)
  43. if (NOT IOS)
  44. set (PLATFORM_SOURCE IO/MacFileWatcher.mm UI/UIDragDropMac.mm)
  45. else()
  46. endif()
  47. endif()
  48. if (EMSCRIPTEN)
  49. endif()
  50. set (SOURCE_FILES ${CONTAINER_SOURCE} ${CORE_SOURCE} ${ENGINE_SOURCE} ${INPUT_SOURCE}
  51. ${AUDIO_SOURCE} ${IO_SOURCE} ${MATH_SOURCE}
  52. ${RESOURCE_SOURCE} ${PHYSICS_SOURCE} ${IPC_SOURCE}
  53. ${GRAPHICS_SOURCE} ${GRAPHICS_IMPL_SOURCE}
  54. ${ATOMIC3D_SOURCE}
  55. ${ATOMIC2D_SOURCE} ${ENVIRONMENT_SOURCE}
  56. ${SCENE_SOURCE} ${UI_SOURCE}
  57. ${PLATFORM_SOURCE})
  58. if (NOT EMSCRIPTEN)
  59. set (SOURCE_FILES ${SOURCE_FILES} ${NETWORK_SOURCE} ${NAVIGATION_SOURCE})
  60. endif()
  61. GroupSources("Atomic2D")
  62. GroupSources("Atomic3D")
  63. GroupSources("Audio")
  64. GroupSources("Container")
  65. GroupSources("Core")
  66. GroupSources("Engine")
  67. GroupSources("Environment")
  68. GroupSources("Graphics")
  69. GroupSources("Input")
  70. GroupSources("IO")
  71. GroupSources("IPC")
  72. GroupSources("Math")
  73. GroupSources("Navigation")
  74. GroupSources("Network")
  75. GroupSources("Physics")
  76. GroupSources("Resource")
  77. GroupSources("Scene")
  78. GroupSources("UI")
  79. add_library(Atomic ${SOURCE_FILES})