project('turings_tarpit', '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 = libgit2_proj.dependency('libgit2package') efsw = dependency('efsw') fmt = dependency('fmt') catch2 = dependency('catch2-with-main') sfml = dependency('sfml') json = dependency('nlohmann_json') imgui = dependency('imgui-sfml') dependencies = [ fmt, libgit2package, efsw, sfml, imgui, json ] executable('escape_turings_tarpit', ['game_engine.cpp', 'gui.cpp', 'watcher.cpp', 'builder.cpp', 'sfmlgui.cpp', 'escape_turings_tarpit.cpp'], dependencies: dependencies) executable('regtest', 'regtest.cpp', dependencies: [fmt]) executable('audiotest', 'audiotest.cpp', dependencies: dependencies) executable('jsontest', 'jsontest.cpp', dependencies: dependencies) executable('threadtest', 'threadtest.cpp', dependencies: dependencies) executable('fsmtest', 'fsmtest.cpp', dependencies: dependencies) executable('badref', 'badref.cpp', dependencies: dependencies) executable('corotest', [ 'corotest.cpp' ], dependencies: dependencies, cpp_args: '-fcoroutines') runtests = executable('runtests', [ 'game_engine.cpp', 'tests/game_engine.cpp', ], dependencies: dependencies + [catch2]) test('tests', runtests)