CMakeLists.txt 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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_CORE ls-atlantis-core)
  13. set(MODULE_NAME_INTERFACE ls-atlantis-interface)
  14. set(MODULE_NAME_WINDOW ls-atlantis-window)
  15. set(CMAKE_DEBUG_POSTFIX -d)
  16. include_directories(${CMAKE_CURRENT_LIST_DIR}/include)
  17. include_directories(${CMAKE_CURRENT_LIST_DIR}/)
  18. ################################
  19. # Dependencies
  20. ################################
  21. find_package(GTest REQUIRED)
  22. find_package(ls-std REQUIRED)
  23. find_package(SDL3 REQUIRED)
  24. if (WIN32)
  25. file(GLOB LS_STD_DLLS_DEBUG "${ls-std_LIB_DIRS_DEBUG}/*.dll")
  26. file(GLOB LS_STD_DLLS_RELEASE "${ls-std_LIB_DIRS_RELEASE}/*.dll")
  27. endif ()
  28. ################################################################
  29. ################################################################
  30. # Module: Core
  31. ################################################################
  32. ################################################################
  33. include(cmake/ls-atlantis-core.cmake)
  34. include(cmake/ls-atlantis-core-tests.cmake)
  35. ################################################################
  36. ################################################################
  37. # Module: Interface
  38. ################################################################
  39. ################################################################
  40. include(cmake/ls-atlantis-interface.cmake)
  41. include(cmake/ls-atlantis-interface-tests.cmake)
  42. ################################################################
  43. ################################################################
  44. # Module: Window
  45. ################################################################
  46. ################################################################
  47. include(cmake/ls-atlantis-window.cmake)
  48. include(cmake/ls-atlantis-window-tests.cmake)
  49. ################################################################
  50. ################################################################
  51. # All Tests
  52. ################################################################
  53. ################################################################
  54. add_custom_target(ls-atlantis-tests
  55. DEPENDS
  56. ${MODULE_NAME_CORE}-tests
  57. ${MODULE_NAME_INTERFACE}-tests
  58. ${MODULE_NAME_WINDOW}-tests
  59. )