Exploring raycasters and possibly make a little "doom like" game based on it.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
raycaster/meson.build

158 lines
3.5 KiB

project('raycaster', 'cpp',
version: '0.1.0',
default_options: [
'cpp_std=c++20',
'cpp_args=-D_GLIBCXX_DEBUG=1 -D_GLIBCXX_DEBUG_PEDANTIC=1',
])
# use this for common options only for our executables
cpp_args=[]
link_args=[]
# these are passed as override_defaults
exe_defaults = [ 'warning_level=2' ]
cc = meson.get_compiler('cpp')
dependencies = []
if build_machine.system() == 'windows'
sfml_main = dependency('sfml_main')
opengl32 = cc.find_library('opengl32', required: true)
winmm = cc.find_library('winmm', required: true)
gdi32 = cc.find_library('gdi32', required: true)
add_global_link_arguments(
'-static-libgcc',
'-static-libstdc++',
'-static',
language: 'cpp',
)
dependencies += [
opengl32, winmm, gdi32, sfml_main
]
exe_defaults += ['werror=true']
elif build_machine.system() == 'darwin'
add_global_link_arguments(
language: 'cpp',
)
opengl = dependency('OpenGL')
corefoundation = dependency('CoreFoundation')
carbon = dependency('Carbon')
cocoa = dependency('Cocoa')
iokit = dependency('IOKit')
corevideo = dependency('CoreVideo')
link_args += ['-ObjC']
exe_defaults += ['werror=false']
dependencies += [
opengl, corefoundation, carbon, cocoa, iokit, corevideo
]
endif
catch2 = dependency('catch2-with-main')
fmt = subproject('fmt').get_variable('fmt_dep')
json = dependency('nlohmann_json')
freetype2 = dependency('freetype2')
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_network = dependency('sfml_network')
sfml_system = dependency('sfml_system')
sfml_window = dependency('sfml_window',
default_options: ['default_library=shared'])
ftxui_screen = dependency('ftxui-screen')
ftxui_dom = dependency('ftxui-dom')
ftxui_component = dependency('ftxui-component')
dependencies += [
fmt, json, freetype2,
flac, ogg, vorbis, vorbisfile, vorbisenc,
sfml_audio, sfml_graphics,
sfml_network, sfml_system,
sfml_window, ftxui_screen, ftxui_dom, ftxui_component
]
sources = [
'ansi_parser.cpp',
'autowalker.cpp',
'boss_fight_ui.cpp',
'camera.cpp',
'combat.cpp',
'combat_ui.cpp',
'components.cpp',
'config.cpp',
'dbc.cpp',
'devices.cpp',
'guecs.cpp',
'gui_fsm.cpp',
'inventory.cpp',
'lel.cpp',
'levelmanager.cpp',
'lights.cpp',
'main_ui.cpp',
'map.cpp',
'map_view.cpp',
'matrix.cpp',
'matrix.cpp',
'overlay_ui.cpp',
'panel.cpp',
'pathing.cpp',
'rand.cpp',
'raycaster.cpp',
'render.cpp',
'save.cpp',
'shiterator.hpp',
'sound.cpp',
'spatialmap.cpp',
'stats.cpp',
'status_ui.cpp',
'systems.cpp',
'textures.cpp',
'tilemap.cpp',
'worldbuilder.cpp',
]
executable('runtests', sources + [
'tests/ansi_parser.cpp',
'tests/base.cpp',
'tests/components.cpp',
'tests/config.cpp',
'tests/dbc.cpp',
'tests/dinkyecs.cpp',
'tests/fsm.cpp',
'tests/guecs.cpp',
'tests/inventory.cpp',
'tests/lel.cpp',
'tests/levelmanager.cpp',
'tests/lighting.cpp',
'tests/map.cpp',
'tests/matrix.cpp',
'tests/pathing.cpp',
'tests/sound.cpp',
'tests/spatialmap.cpp',
'tests/textures.cpp',
'tests/tilemap.cpp',
],
cpp_args: cpp_args,
link_args: link_args,
override_options: exe_defaults,
dependencies: dependencies + [catch2])
executable('zedcaster',
sources + [ 'main.cpp' ],
cpp_args: cpp_args,
link_args: link_args,
override_options: exe_defaults,
dependencies: dependencies)