Created
June 24, 2016 06:09
-
-
Save waruqi/4ac2eddb082fd7d7cbf909e104968334 to your computer and use it in GitHub Desktop.
the project file for tbox
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- xmake: https://github.com/waruqi/xmake | |
-- project | |
set_project("tbox") | |
-- version | |
set_version("1.5.1") | |
-- set warning all as error | |
set_warnings("all", "error") | |
-- set language: c99, c++11 | |
set_languages("c99", "cxx11") | |
-- add defines to config.h | |
add_defines_h("$(prefix)_OS_$(OS)") | |
-- add undefines to config.h | |
add_undefines_h("$(prefix)_TRACE_INFO_ONLY") | |
add_undefines_h("$(prefix)_EXCEPTION_ENABLE") | |
add_undefines_h("$(prefix)_MEMORY_UNALIGNED_ACCESS_ENABLE") | |
-- add defines for c files | |
add_defines("_GNU_SOURCE=1", "_REENTRANT") | |
-- disable some compiler errors | |
add_cxflags("-Wno-error=deprecated-declarations", "-fno-strict-aliasing") | |
add_mxflags("-Wno-error=deprecated-declarations", "-fno-strict-aliasing") | |
-- 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 | |
-- smallest? | |
if is_option("smallest") then | |
-- enable smallest optimization | |
set_optimize("smallest") | |
else | |
-- enable fastest optimization | |
set_optimize("fastest") | |
end | |
-- attempt to add vector extensions | |
add_vectorexts("sse2", "sse3", "ssse3", "mmx") | |
end | |
-- smallest? | |
if is_option("smallest") then | |
-- add defines for small | |
add_defines("__tb_small__") | |
-- add defines to config.h | |
add_defines_h("$(prefix)_SMALL") | |
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 option: demo | |
option("demo") | |
set_enable(true) | |
set_showmenu(true) | |
set_category("option") | |
set_description("Enable or disable the demo module") | |
-- add package directories | |
add_packagedirs("pkg") | |
-- add projects | |
add_subdirs("src/tbox") | |
if is_option("demo") then add_subdirs("src/demo") end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment