cmake_minimum_required(VERSION 3.28) project(ls-atlantis-engine VERSION 0.0.1 LANGUAGES CXX) ################################ # Compiler Settings ################################ set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) ################################ # Global Project Settings ################################ set(MODULE_NAME_CORE ls-atlantis-core) set(MODULE_NAME_INTERFACE ls-atlantis-interface) set(CMAKE_DEBUG_POSTFIX -d) include_directories(${CMAKE_CURRENT_LIST_DIR}/include) ################################ # Dependencies ################################ find_package(GTest REQUIRED) find_package(SDL3 REQUIRED) ################################################################ ################################################################ # Module: Core ################################################################ ################################################################ ################################ # Source Files: Core Module ################################ set(ATLANTIS_CORE_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/source/core/StatusCodeOk.cpp ) ################################ # Library Creation: Core Module ################################ add_library(${MODULE_NAME_CORE} SHARED ${ATLANTIS_CORE_SOURCES}) target_link_libraries(${MODULE_NAME_CORE} PUBLIC ${MODULE_NAME_INTERFACE} ) ################################ # Test Files: Core Module ################################ set(ATLANTIS_CORE_TEST_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/test/core/StatusCodeOkTest.cpp ) ################################ # Test Case Creation: Core Module ################################ enable_testing() add_executable(${MODULE_NAME_CORE}-tests ${ATLANTIS_CORE_TEST_SOURCES}) target_link_libraries(${MODULE_NAME_CORE}-tests PRIVATE ${MODULE_NAME_CORE} GTest::gtest_main ) include(GoogleTest) gtest_discover_tests(${MODULE_NAME_CORE}-tests) ################################################################ ################################################################ # Module: Interface ################################################################ ################################################################ ################################ # Source Files: Interface Module ################################ set(ATLANTIS_INTERFACE_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/source/interface/AStatusCode.cpp ${CMAKE_CURRENT_SOURCE_DIR}/source/interface/IWindowApi.cpp ) ################################ # Library Creation: Interface Module ################################ add_library(${MODULE_NAME_INTERFACE} SHARED ${ATLANTIS_INTERFACE_SOURCES}) #target_link_libraries(${MODULE_NAME_INTERFACE} PUBLIC # SDL3::SDL3 #)