|
|
|
option("openmp", {default = false})
|
|
|
|
option("regex", {default = false})
|
|
|
|
option("rand", {default = false})
|
|
|
|
|
|
|
|
add_rules("mode.debug", "mode.release")
|
|
|
|
|
|
|
|
if has_config("openmp") then
|
|
|
|
add_requires("openmp")
|
|
|
|
add_packages("openmp")
|
|
|
|
end
|
|
|
|
|
|
|
|
if has_config("regex") then
|
|
|
|
add_defines("USE_GKREGEX", {public = true})
|
|
|
|
end
|
|
|
|
|
|
|
|
if has_config("rand") then
|
|
|
|
add_defines("USE_GKRAND")
|
|
|
|
end
|
|
|
|
|
|
|
|
includes("@builtin/check")
|
|
|
|
|
|
|
|
configvar_check_cincludes("HAVE_EXECINFO_H", "execinfo.h")
|
|
|
|
configvar_check_cfuncs("HAVE_GETLINE", "getline")
|
|
|
|
|
|
|
|
target("gklib")
|
|
|
|
set_kind("$(kind)")
|
|
|
|
add_files("*.c")
|
|
|
|
add_headerfiles("*.h")
|
|
|
|
|
|
|
|
add_includedirs(".")
|
|
|
|
add_vectorexts("all")
|
|
|
|
|
|
|
|
if is_plat("windows") then
|
|
|
|
add_files("win32/*.c")
|
|
|
|
add_headerfiles("(win32/adapt.h)")
|
|
|
|
add_defines("_CRT_SECURE_NO_DEPRECATE", "USE_GKREGEX", "__thread=__declspec(thread)", {public = true})
|
|
|
|
if is_kind("shared") then
|
|
|
|
add_rules("utils.symbols.export_all")
|
|
|
|
end
|
|
|
|
elseif is_plat("mingw") then
|
|
|
|
add_defines("USE_GKREGEX")
|
|
|
|
elseif is_plat("linux") then
|
|
|
|
add_syslinks("m")
|
|
|
|
add_defines("_FILE_OFFSET_BITS=64")
|
|
|
|
elseif is_plat("bsd") then
|
|
|
|
add_syslinks("m")
|
|
|
|
end
|
|
|
|
|
|
|
|
on_config(function (target)
|
|
|
|
if not target:check_csnippets({test = "extern __thread int x;"}) then
|
|
|
|
target:add("defines", "__thread")
|
|
|
|
end
|
|
|
|
end)
|