-- version set_version("1.0.0") -- set warning all as error set_warnings("all", "error") -- set language: c99, c++11 set_languages("c99", "cxx11") -- disable some compiler errors add_cxflags("-Wno-error=deprecated-declarations") add_mxflags("-Wno-error=deprecated-declarations") -- add defines for c files add_defines("_GNU_SOURCE=1", "_REENTRANT") -- the debug or check or coverage mode if is_mode("debug", "check", "coverage") then -- enable the debug symbols set_symbols("debug") -- disable optimization set_optimize("none") -- add defines for debug add_defines("__tb_debug__") -- attempt to enable some checkers for pc if is_mode("check") and is_arch("i386", "x86_64") then add_cxflags("-fsanitize=address", "-ftrapv") add_mxflags("-fsanitize=address", "-ftrapv") add_ldflags("-fsanitize=address") end -- enable coverage if is_mode("coverage") then add_cxflags("--coverage") add_mxflags("--coverage") add_ldflags("--coverage") end end -- the release or profile mode if is_mode("release", "profile") then -- the release mode if is_mode("release") then -- set the symbols visibility: hidden set_symbols("hidden") -- strip all symbols set_strip("all") -- fomit the frame pointer add_cxflags("-fomit-frame-pointer") add_mxflags("-fomit-frame-pointer") -- the profile mode else -- enable the debug symbols set_symbols("debug") -- enable gprof add_cxflags("-pg") add_ldflags("-pg") end -- enable fastest optimization set_optimize("fastest") -- attempt to add vector extensions add_vectorexts("sse2", "sse3", "ssse3", "mmx") end -- for the windows platform (msvc) if is_plat("windows") then -- add some defines only for windows add_defines("NOCRYPT", "NOGDI") -- the release mode if is_mode("release") then -- link libcmt.lib add_cxflags("-MT") -- the debug mode elseif is_mode("debug") then -- enable some checkers add_cxflags("-Gs", "-RTC1") -- link libcmtd.lib add_cxflags("-MTd") end -- no msvcrt.lib add_ldflags("-nodefaultlib:\"msvcrt.lib\"") end -- add packages add_packagedirs("pkg") -- add projects add_subdirs("src")