CMakeLists.txt 2.6 KB

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