# mars::stream — Streamable serialization (save-file format) + gzip container.
# Included from the root CMakeLists.txt via add_subdirectory(src/mars/stream).

if(NOT TARGET miniz)  # mars/vfs defines the same vendored target when added first
  add_library(miniz STATIC ${CMAKE_CURRENT_SOURCE_DIR}/../../../third_party/miniz/miniz.c)
  target_include_directories(miniz PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../../third_party/miniz)
  target_compile_definitions(miniz PUBLIC MINIZ_NO_STDIO MINIZ_NO_ARCHIVE_APIS MINIZ_NO_TIME)
  set_target_properties(miniz PROPERTIES LINKER_LANGUAGE C)
endif()

add_library(mars_stream STATIC
  gzip.cpp
  reader.cpp
  writer.cpp
  dump.cpp
  save.cpp)
target_include_directories(mars_stream PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../..)
target_link_libraries(mars_stream PUBLIC miniz)
target_compile_features(mars_stream PUBLIC cxx_std_17)

add_executable(sots_savedump savedump_main.cpp)
target_link_libraries(sots_savedump PRIVATE mars_stream)
