project('raycaster', 'cpp', version: '0.1.0', default_options: [ 'cpp_std=c++20', 'cpp_args=-D_GLIBCXX_DEBUG=1 -D_GLIBCXX_DEBUG_PEDANTIC=1', ]) exe_defaults = ['warning_level=2', 'werror=true'] cc = meson.get_compiler('cpp') tracy = dependency('tracy', static: true) catch2 = dependency('catch2-with-main') fmt = dependency('fmt', allow_fallback: true) freetype2 = dependency('freetype2') json = dependency('nlohmann_json') opengl32 = cc.find_library('opengl32', required: true) winmm = cc.find_library('winmm', required: true) gdi32 = cc.find_library('gdi32', required: true) flac = dependency('flac') ogg = dependency('ogg') vorbis = dependency('vorbis') vorbisfile = dependency('vorbisfile') vorbisenc = dependency('vorbisenc') sfml_audio = dependency('sfml_audio') sfml_graphics = dependency('sfml_graphics') sfml_main = dependency('sfml_main') sfml_network = dependency('sfml_network') sfml_system = dependency('sfml_system') sfml_window = dependency('sfml_window') if get_option('tracy_enable') and get_option('buildtype') != 'debugoptimized' warning('Profiling builds should set --buildtype=debugoptimized') endif dependencies = [ fmt, json, opengl32, freetype2, flac, ogg, vorbis, vorbisfile, vorbisenc, winmm, gdi32, sfml_audio, sfml_graphics, sfml_main, sfml_network, sfml_system, sfml_window, tracy ] # use this for common options only for our executables cpp_args=[] executable('runtests', [ 'dbc.cpp', 'matrix.cpp', 'tests/base.cpp', ], override_options: exe_defaults, dependencies: dependencies + [catch2]) executable('zedcaster', [ 'dbc.cpp', 'matrix.cpp', 'config.cpp', 'texture.cpp', 'raycaster.cpp', 'animator.cpp', 'stats.cpp', 'main.cpp' ], cpp_args: cpp_args, override_options: exe_defaults, dependencies: dependencies) executable('amtcaster', [ 'dbc.cpp', 'config.cpp', 'amt/texture.cpp', 'amt/raycaster.cpp', 'amt/main.cpp' ], cpp_args: ['-std=c++23'], override_options: exe_defaults, dependencies: dependencies)