# 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
  visibility_phase.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 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()
