# src/app — the standalone: load a save, run one strategic turn, write a save. # Included from the root CMakeLists.txt via add_subdirectory(src/app). # # The turn logic is a library so the test can drive it in process; `sots_turn` is the CLI. add_library(sots_app STATIC alliance.cpp phase_catalog.cpp trade_raid.cpp treaty.cpp turn_record.cpp construction_phase.cpp event_phase.cpp growth_phase.cpp observed_phase.cpp script_phase.cpp visibility_phase.cpp command_replay.cpp turn.cpp report.cpp) target_include_directories(sots_app PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/..) # game_design (and game_data under it) is here for one phase only: the tail's turn record # needs a design's hull size and defence-platform flag, which are recomputed from the section # catalog and are nowhere on the wire. No game data is embedded; the root is supplied at run # time and its absence costs exactly six fields. target_link_libraries(sots_app PUBLIC mars_stream mars_rng sots_game_sim sots_game_events sots_game_ai game_design) target_compile_features(sots_app PUBLIC cxx_std_17) if(NOT MSVC) target_compile_options(sots_app PRIVATE -Wall -Wextra -Werror) endif() add_executable(sots_turn main.cpp) target_link_libraries(sots_turn PRIVATE sots_app) if(NOT MSVC) target_compile_options(sots_turn PRIVATE -Wall -Wextra -Werror) endif()