project('lcppthw', 'cpp', default_options: ['cpp_std=c++20']) cmake = import('cmake') opts = cmake.subproject_options() opts.add_cmake_defines({ 'USE_ICONV': false, 'USE_SSH': false, 'USE_NTLMCLIENT': false, 'BUILD_SHARED_LIBS': true, 'BUILD_TESTS': false, }) libgit2_proj = cmake.subproject('libgit2', options: opts) libgit2package_dep = libgit2_proj.dependency('libgit2package') efsw_dep = dependency('efsw') fmt = dependency('fmt') ftxui_screen = dependency('ftxui-screen') ftxui_dom = dependency('ftxui-dom') ftxui_component = dependency('ftxui-component') catch2 = dependency('catch2-with-main') sfml = dependency('sfml') json = dependency('nlohmann_json') imgui = dependency('imgui-sfml') dependencies = [ fmt, libgit2package_dep, efsw_dep, ftxui_screen, ftxui_dom, ftxui_component, sfml, imgui, json ] executable('escape_turings_tarpit', ['game_engine.cpp', 'gui.cpp', 'watcher.cpp', 'builder.cpp', 'escape_turings_tarpit.cpp'], dependencies: dependencies) executable('regtest', 'regtest.cpp', dependencies: [fmt]) executable('ftxtest', 'ftxtest.cpp', dependencies: dependencies) executable('ftx_thread_test', 'ftx_thread_test.cpp', dependencies: dependencies) executable('audiotest', 'audiotest.cpp', dependencies: dependencies) executable('jsontest', 'jsontest.cpp', dependencies: dependencies) executable('sfmltest', [ 'sfmltest.cpp', 'sfmlgui.cpp', ], dependencies: dependencies) runtests = executable('runtests', [ 'game_engine.cpp', 'tests/game_engine.cpp'], dependencies: dependencies + [catch2]) test('the tests', runtests)