project ( 'c-plus-plus-dafuq' , 'cpp' ,
version : '0.1.0' ,
default_options : [
'cpp_std=c++20' ,
'cpp_args=-DTRACY_ENABLE=1 -D_GLIBCXX_DEBUG=1 -D_GLIBCXX_DEBUG_PEDANTIC=1' ,
'cpp_args=-DTRACY_ENABLE=1' ,
] )
exe_defaults = [ ]
cc = meson . get_compiler ( 'cpp' )
tracy = dependency ( 'tracy' , static : true )
catch2 = dependency ( 'catch2-with-main' )
fmt = dependency ( 'fmt' , allow_fallback : true )
json = dependency ( 'nlohmann_json' )
# not sure if tracy needs these
opengl32 = cc . find_library ( 'opengl32' , required : true )
winmm = cc . find_library ( 'winmm' , required : true )
gdi32 = cc . find_library ( 'gdi32' , required : true )
# i know for sure tracy needs these
ws2_32 = cc . find_library ( 'ws2_32' , required : true )
dbghelp = cc . find_library ( 'dbghelp' , required : true )
if get_option ( 'tracy_enable' ) and get_option ( 'buildtype' ) != 'debugoptimized'
warning ( 'Profiling builds should set --buildtype=debugoptimized' )
endif
dependencies = [
tracy , catch2 , fmt , json , opengl32 ,
ws2_32 , dbghelp
]
# use this for common options only for our executables
cpp_args = [ ]
executable ( 'emplace_test' , [
'TracyClient.cpp' ,
'emplace_move/test.cpp'
] ,
override_options : exe_defaults ,
dependencies : dependencies )
executable ( 'rvo_test' , [
'TracyClient.cpp' ,
'rvo/test.cpp'
] ,
override_options : exe_defaults ,
dependencies : dependencies )
executable ( 'sfml-original' , 'sfml-const/original.cpp' ,
override_options : exe_defaults ,
dependencies : dependencies )
executable ( 'sfml-fix1' , 'sfml-const/fix1.cpp' ,
override_options : exe_defaults ,
dependencies : dependencies )
executable ( 'sfml-fix2' , 'sfml-const/fix2.cpp' ,
override_options : exe_defaults ,
dependencies : dependencies )