# Optional CMake wiring for the game_design tests; the canonical runner is
# build_and_run.sh (plain g++). Include from the root with
# add_subdirectory(tests/game_design) after add_subdirectory(src/game/design).
add_executable(game_design_unit_tests
    test_main.cpp mini_catalog.cpp test_structure.cpp test_banks.cpp test_tech.cpp test_stats.cpp test_hull.cpp test_json.cpp)
target_link_libraries(game_design_unit_tests PRIVATE game_design)
target_include_directories(game_design_unit_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
add_test(NAME game_design_unit COMMAND game_design_unit_tests)

add_executable(game_design_realdata_test stock_designs.cpp realdata_test.cpp)
target_link_libraries(game_design_realdata_test PRIVATE game_design)
target_include_directories(game_design_realdata_test PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
add_test(NAME game_design_realdata COMMAND game_design_realdata_test)   # SKIPs without SOTS_DATA_DIR + SOTS_DESIGNS_JSON

add_executable(game_design_dump_designs stock_designs.cpp dump_designs.cpp)
target_link_libraries(game_design_dump_designs PRIVATE game_design)
target_include_directories(game_design_dump_designs PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})

# The ship census against the census the game archived; needs the owner's saves
# AND a data root, and skips cleanly without either.
add_executable(game_design_census_test test_census_saves.cpp)
target_link_libraries(game_design_census_test PRIVATE game_design mars_stream)
target_include_directories(game_design_census_test PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
target_compile_options(game_design_census_test PRIVATE -Wall -Wextra -Wpedantic)
add_test(NAME game_design_census COMMAND game_design_census_test)
