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_CYCLE ls-atlantis-cycle) set(MODULE_NAME_FACTORY ls-atlantis-factory) set(MODULE_NAME_INPUT ls-atlantis-input) set(MODULE_NAME_INTERFACE ls-atlantis-interface) set(MODULE_NAME_MESSAGING ls-atlantis-messaging) set(MODULE_NAME_WINDOW ls-atlantis-window) set(CMAKE_DEBUG_POSTFIX -d) include_directories(${CMAKE_CURRENT_LIST_DIR}/include) include_directories(${CMAKE_CURRENT_LIST_DIR}/) ################################ # Dependencies ################################ find_package(GTest REQUIRED) find_package(ls-std REQUIRED) find_package(SDL3 REQUIRED) enable_testing() include(GoogleTest) if (WIN32) file(GLOB LS_STD_DLLS_DEBUG "${ls-std_LIB_DIRS_DEBUG}/*.dll") file(GLOB LS_STD_DLLS_RELEASE "${ls-std_LIB_DIRS_RELEASE}/*.dll") endif () ################################################################ ################################################################ # Module: Interface ################################################################ ################################################################ include(cmake/ls-atlantis-interface.cmake) include(cmake/ls-atlantis-interface-tests.cmake) ################################################################ ################################################################ # Module: Input ################################################################ ################################################################ include(cmake/ls-atlantis-input.cmake) include(cmake/ls-atlantis-input-tests.cmake) ################################################################ ################################################################ # Module: Messaging ################################################################ ################################################################ include(cmake/ls-atlantis-messaging.cmake) include(cmake/ls-atlantis-messaging-tests.cmake) ################################################################ ################################################################ # Module: Window ################################################################ ################################################################ include(cmake/ls-atlantis-window.cmake) include(cmake/ls-atlantis-window-tests.cmake) ################################################################ ################################################################ # Module: Factory ################################################################ ################################################################ include(cmake/ls-atlantis-factory.cmake) include(cmake/ls-atlantis-factory-tests.cmake) ################################################################ ################################################################ # Module: Cycle ################################################################ ################################################################ include(cmake/ls-atlantis-cycle.cmake) include(cmake/ls-atlantis-cycle-tests.cmake) ################################################################ ################################################################ # Example ################################################################ ################################################################ include(cmake/ls-atlantis-example.cmake) ################################################################ ################################################################ # All Tests ################################################################ ################################################################ add_custom_target(ls-atlantis-tests DEPENDS ${MODULE_NAME_CYCLE}-tests ${MODULE_NAME_FACTORY}-tests ${MODULE_NAME_INPUT}-tests ${MODULE_NAME_INTERFACE}-tests ${MODULE_NAME_MESSAGING}-tests ${MODULE_NAME_WINDOW}-tests )