CMakeLists.txt 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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. set(MODULE_NAME_CYCLE ls-atlantis-cycle)
  13. set(MODULE_NAME_FACTORY ls-atlantis-factory)
  14. set(MODULE_NAME_INTERFACE ls-atlantis-interface)
  15. set(MODULE_NAME_WINDOW ls-atlantis-window)
  16. set(CMAKE_DEBUG_POSTFIX -d)
  17. include_directories(${CMAKE_CURRENT_LIST_DIR}/include)
  18. include_directories(${CMAKE_CURRENT_LIST_DIR}/)
  19. ################################
  20. # Dependencies
  21. ################################
  22. find_package(GTest REQUIRED)
  23. find_package(ls-std REQUIRED)
  24. find_package(SDL3 REQUIRED)
  25. if (WIN32)
  26. file(GLOB LS_STD_DLLS_DEBUG "${ls-std_LIB_DIRS_DEBUG}/*.dll")
  27. file(GLOB LS_STD_DLLS_RELEASE "${ls-std_LIB_DIRS_RELEASE}/*.dll")
  28. endif ()
  29. ################################################################
  30. ################################################################
  31. # Module: Cycle
  32. ################################################################
  33. ################################################################
  34. include(cmake/ls-atlantis-cycle.cmake)
  35. include(cmake/ls-atlantis-cycle-tests.cmake)
  36. ################################################################
  37. ################################################################
  38. # Module: Interface
  39. ################################################################
  40. ################################################################
  41. include(cmake/ls-atlantis-interface.cmake)
  42. include(cmake/ls-atlantis-interface-tests.cmake)
  43. ################################################################
  44. ################################################################
  45. # Module: Window
  46. ################################################################
  47. ################################################################
  48. include(cmake/ls-atlantis-window.cmake)
  49. include(cmake/ls-atlantis-window-tests.cmake)
  50. ################################################################
  51. ################################################################
  52. # Module: Factory
  53. ################################################################
  54. ################################################################
  55. include(cmake/ls-atlantis-factory.cmake)
  56. include(cmake/ls-atlantis-factory-tests.cmake)
  57. ################################################################
  58. ################################################################
  59. # Example
  60. ################################################################
  61. ################################################################
  62. include(cmake/ls-atlantis-example.cmake)
  63. ################################################################
  64. ################################################################
  65. # All Tests
  66. ################################################################
  67. ################################################################
  68. add_custom_target(ls-atlantis-tests
  69. DEPENDS
  70. ${MODULE_NAME_CYCLE}-tests
  71. ${MODULE_NAME_FACTORY}-tests
  72. ${MODULE_NAME_INTERFACE}-tests
  73. ${MODULE_NAME_WINDOW}-tests
  74. )