cmake_minimum_required(VERSION 3.28) project(ls-atlantis-engine VERSION 0.0.1 LANGUAGES CXX) set(CMAKE_CONFIGURATION_TYPES "Debug" CACHE STRING "Build configurations" FORCE) ################################ # 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) include_directories(${CMAKE_CURRENT_LIST_DIR}/include) ################################ # Dependencies ################################ find_package(GTest REQUIRED) ################################ # Source Files: Core Module ################################ set(ATLANTIS_CORE_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/source/IWindowApi.cpp ${CMAKE_CURRENT_SOURCE_DIR}/source/StatusCode.cpp ) ################################ # Library Creation: Core Module ################################ add_library(${MODULE_NAME_CORE} SHARED ${ATLANTIS_CORE_SOURCES}) ################################ # Test Files: Core Module ################################ set(ATLANTIS_CORE_TEST_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/test/core/StatusCodeTest.cpp ) ################################ # Test Case Creation: Core Module ################################ enable_testing() add_executable(atlantis-core-tests ${ATLANTIS_CORE_TEST_SOURCES}) target_link_libraries(atlantis-core-tests PRIVATE ${MODULE_NAME_CORE} GTest::gtest_main ) include(GoogleTest) gtest_discover_tests(atlantis-core-tests)