project ( 'sfmldemo' , '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'
add_global_link_arguments (
'-static-libgcc' ,
'-static-libstdc++' ,
'-static' ,
language : 'cpp' ,
)
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 )
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' )
freetype2 = dependency ( 'freetype2' )
flac = dependency ( 'flac' )
box2d = dependency ( 'box2d' )
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' ] )
dependencies + = [
fmt , freetype2 ,
flac , ogg , vorbis , vorbisfile , vorbisenc ,
sfml_audio , sfml_graphics ,
sfml_network , sfml_system ,
sfml_window , box2d
]
sources = [
'dbc.cpp' ,
]
executable ( 'sfmldemo' ,
sources + [ 'main.cpp' ] ,
cpp_args : cpp_args ,
link_args : link_args ,
override_options : exe_defaults ,
dependencies : dependencies )