project('roguish', 'cpp',
    default_options: [ 'cpp_std=c++20' ])

catch2 = dependency('catch2-with-main')
fmt = dependency('fmt')
json = dependency('nlohmann_json')
ftxui_screen = dependency('ftxui-screen')
ftxui_dom = dependency('ftxui-dom')
ftxui_component = dependency('ftxui-component')
sfml = dependency('sfml')

dependencies = [catch2, fmt,
  ftxui_screen, ftxui_dom, ftxui_component,
  json, sfml]

runtests = executable('runtests', [
  'dbc.cpp',
  'map.cpp',
  'rand.cpp',
  'sound.cpp',
  'collider.cpp',
  'ansi_parser.cpp',
  'config.cpp',
  'save.cpp',
  'panel.cpp',
  'tests/fsm.cpp',
  'tests/dbc.cpp',
  'tests/map.cpp',
  'tests/collider.cpp',
  'tests/sound.cpp',
  'tests/dinkyecs.cpp',
  'tests/ansi_parser.cpp',
  'tests/config.cpp',
  'tests/save.cpp',
  ],
  dependencies: dependencies)

roguish = executable('roguish', [
  'dbc.cpp',
  'main.cpp',
  'map.cpp',
  'gui.cpp',
  'rand.cpp',
  'sound.cpp',
  'collider.cpp',
  'combat.cpp',
  'systems.cpp',
  'ansi_parser.cpp',
  'render.cpp',
  'config.cpp',
  'save.cpp',
  'panel.cpp',
  ],
  dependencies: dependencies)

test('tests', runtests)
