CMakeLists.txt 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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(CMAKE_DEBUG_POSTFIX -d)
  15. include_directories(${CMAKE_CURRENT_LIST_DIR}/include)
  16. ################################
  17. # Dependencies
  18. ################################
  19. find_package(GTest REQUIRED)
  20. find_package(SDL3 REQUIRED)
  21. ################################################################
  22. ################################################################
  23. # Module: Core
  24. ################################################################
  25. ################################################################
  26. ################################
  27. # Source Files: Core Module
  28. ################################
  29. set(ATLANTIS_CORE_SOURCES
  30. ${CMAKE_CURRENT_SOURCE_DIR}/source/core/StatusCodeOk.cpp
  31. )
  32. ################################
  33. # Library Creation: Core Module
  34. ################################
  35. add_library(${MODULE_NAME_CORE} SHARED ${ATLANTIS_CORE_SOURCES})
  36. target_link_libraries(${MODULE_NAME_CORE} PUBLIC
  37. ${MODULE_NAME_INTERFACE}
  38. )
  39. ################################
  40. # Test Files: Core Module
  41. ################################
  42. set(ATLANTIS_CORE_TEST_SOURCES
  43. ${CMAKE_CURRENT_SOURCE_DIR}/test/core/StatusCodeOkTest.cpp
  44. )
  45. ################################
  46. # Test Case Creation: Core Module
  47. ################################
  48. enable_testing()
  49. add_executable(${MODULE_NAME_CORE}-tests ${ATLANTIS_CORE_TEST_SOURCES})
  50. target_link_libraries(${MODULE_NAME_CORE}-tests PRIVATE
  51. ${MODULE_NAME_CORE}
  52. GTest::gtest_main
  53. )
  54. include(GoogleTest)
  55. gtest_discover_tests(${MODULE_NAME_CORE}-tests)
  56. ################################################################
  57. ################################################################
  58. # Module: Interface
  59. ################################################################
  60. ################################################################
  61. ################################
  62. # Source Files: Interface Module
  63. ################################
  64. set(ATLANTIS_INTERFACE_SOURCES
  65. ${CMAKE_CURRENT_SOURCE_DIR}/source/interface/AStatusCode.cpp
  66. ${CMAKE_CURRENT_SOURCE_DIR}/source/interface/IWindowApi.cpp
  67. )
  68. ################################
  69. # Library Creation: Interface Module
  70. ################################
  71. add_library(${MODULE_NAME_INTERFACE} SHARED ${ATLANTIS_INTERFACE_SOURCES})
  72. #target_link_libraries(${MODULE_NAME_INTERFACE} PUBLIC
  73. # SDL3::SDL3
  74. #)