-
-
Notifications
You must be signed in to change notification settings - Fork 369
Expand file tree
/
Copy pathxmake.lua
More file actions
117 lines (110 loc) · 3.21 KB
/
xmake.lua
File metadata and controls
117 lines (110 loc) · 3.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
set_project("lcui")
set_version("3.0.0-a")
set_warnings("all", "error")
set_policy("package.requires_lock", true)
add_rules("mode.debug", "mode.release", "mode.coverage")
add_rpathdirs("@loader_path/lib", "@loader_path")
add_defines("UNICODE", "_CRT_SECURE_NO_WARNINGS", "YUTIL_EXPORTS")
add_includedirs(
"lib/ctest/include",
"lib/yutil/include",
"lib/pandagl/include",
"lib/thread/include",
"lib/css/include",
"lib/i18n/include",
"lib/ptk/include",
"lib/worker/include",
"lib/router/include",
"lib/ui/include",
"lib/ui-server/include",
"lib/ui-cursor/include",
"lib/ui-xml/include",
"lib/ui-router/include",
"include",
{public = true}
)
option("memcheck")
set_default(false)
set_showmenu(true)
set_description("Enable memory check tools (drmemory on Windows, valgrind on Linux)")
option_end()
rule("tests.runnable")
on_test(function (target, opt)
import("core.base.option")
opt = opt or {}
local args = opt.runargs or {}
local rundir = opt.rundir or target:rundir()
local envs = opt.runenvs
local exec_opt = {curdir = rundir, envs = envs}
local exepath = path.absolute(target:targetfile())
if has_config("memcheck") then
local cmd
if is_plat("windows") then
cmd = {"drmemory", "--", exepath}
else
cmd = {"valgrind",
"--leak-check=full",
"--error-exitcode=42",
"--num-callers=20",
exepath}
end
for _, a in ipairs(args) do
table.insert(cmd, a)
end
local ok = try { function ()
os.execv(cmd[1], table.slice(cmd, 2), exec_opt)
return true
end }
return ok ~= nil, ok == nil and "memcheck failed" or nil
end
local ok = try { function ()
os.execv(exepath, args, exec_opt)
return true
end }
return ok ~= nil, ok == nil and "test failed" or nil
end)
rule_end()
includes("lib/*/xmake.lua")
includes("tests/xmake.lua")
option("ci-env", {showmenu = true, default = false})
if has_config("ci-env") then
add_defines("CI_ENV")
end
if is_plat("windows") then
add_defines("_CRT_SECURE_NO_WARNINGS")
else
add_cxflags("-fPIC")
if is_mode("coverage") then
add_cflags("-ftest-coverage", "-fprofile-arcs", {force = true})
add_syslinks("gcov")
end
end
target("lcui")
set_kind("$(kind)")
add_files("src/**.c")
if is_kind("static") then
set_configvar("LCUI_STATIC_BUILD", 1)
elseif is_plat("windows") then
add_defines("LCUI_DLL_EXPORT")
end
if has_package("fontconfig") then
add_defines("HAVE_FONTCONFIG")
end
add_configfiles("src/config.h.in")
set_configdir("include/LCUI")
add_deps(
"yutil",
"libthread",
"libptk",
"libworker",
"pandagl",
"libcss",
"libi18n",
"libui",
"libui-cursor",
"libui-server",
"librouter",
"libui-router",
"libui-xml"
)
add_headerfiles("include/LCUI.h", "include/(LCUI/**.h)")