CMakeLists.txt 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. cmake_minimum_required(VERSION 3.28)
  2. project(ls-atlantis-engine VERSION 0.0.1 LANGUAGES CXX)
  3. ################################
  4. # Compiler Settings
  5. ################################
  6. set(CMAKE_CXX_STANDARD 17)
  7. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  8. set(CMAKE_CXX_EXTENSIONS OFF)
  9. ################################
  10. # Global Project Settings
  11. ################################
  12. # module names
  13. set(MODULE_NAME_CYCLE ls-atlantis-cycle)
  14. set(MODULE_NAME_FACTORY ls-atlantis-factory)
  15. set(MODULE_NAME_INPUT ls-atlantis-input)
  16. set(MODULE_NAME_INTERFACE ls-atlantis-interface)
  17. set(MODULE_NAME_MESSAGING ls-atlantis-messaging)
  18. set(MODULE_NAME_WINDOW ls-atlantis-window)
  19. # example names
  20. set(EXAMPLE_NAME_BASIC_SDL_WINDOW ls-atlantis-basic-sdl-window)
  21. # settings
  22. set(CMAKE_DEBUG_POSTFIX -d)
  23. include_directories(${CMAKE_CURRENT_LIST_DIR}/include)
  24. include_directories(${CMAKE_CURRENT_LIST_DIR}/)
  25. ################################
  26. # Dependencies
  27. ################################
  28. find_package(GTest REQUIRED)
  29. find_package(ls-std REQUIRED)
  30. find_package(SDL3 REQUIRED)
  31. enable_testing()
  32. include(GoogleTest)
  33. if (WIN32)
  34. file(GLOB LS_STD_DLLS_DEBUG "${ls-std_LIB_DIRS_DEBUG}/*.dll")
  35. file(GLOB LS_STD_DLLS_RELEASE "${ls-std_LIB_DIRS_RELEASE}/*.dll")
  36. endif ()
  37. ################################################################
  38. ################################################################
  39. # Module: Interface
  40. ################################################################
  41. ################################################################
  42. include(cmake/ls-atlantis-interface.cmake)
  43. include(cmake/ls-atlantis-interface-tests.cmake)
  44. ################################################################
  45. ################################################################
  46. # Module: Input
  47. ################################################################
  48. ################################################################
  49. include(cmake/ls-atlantis-input.cmake)
  50. include(cmake/ls-atlantis-input-tests.cmake)
  51. ################################################################
  52. ################################################################
  53. # Module: Messaging
  54. ################################################################
  55. ################################################################
  56. include(cmake/ls-atlantis-messaging.cmake)
  57. include(cmake/ls-atlantis-messaging-tests.cmake)
  58. ################################################################
  59. ################################################################
  60. # Module: Window
  61. ################################################################
  62. ################################################################
  63. include(cmake/ls-atlantis-window.cmake)
  64. include(cmake/ls-atlantis-window-tests.cmake)
  65. ################################################################
  66. ################################################################
  67. # Module: Factory
  68. ################################################################
  69. ################################################################
  70. include(cmake/ls-atlantis-factory.cmake)
  71. include(cmake/ls-atlantis-factory-tests.cmake)
  72. ################################################################
  73. ################################################################
  74. # Module: Cycle
  75. ################################################################
  76. ################################################################
  77. include(cmake/ls-atlantis-cycle.cmake)
  78. include(cmake/ls-atlantis-cycle-tests.cmake)
  79. ################################################################
  80. ################################################################
  81. # Example
  82. ################################################################
  83. ################################################################
  84. include(cmake/ls-atlantis-example.cmake)
  85. ################################################################
  86. ################################################################
  87. # All Tests
  88. ################################################################
  89. ################################################################
  90. add_custom_target(ls-atlantis-tests
  91. DEPENDS
  92. ${MODULE_NAME_CYCLE}-tests
  93. ${MODULE_NAME_FACTORY}-tests
  94. ${MODULE_NAME_INPUT}-tests
  95. ${MODULE_NAME_INTERFACE}-tests
  96. ${MODULE_NAME_MESSAGING}-tests
  97. ${MODULE_NAME_WINDOW}-tests
  98. )