-
-
Notifications
You must be signed in to change notification settings - Fork 358
/
xmake.lua
100 lines (95 loc) · 2.78 KB
/
xmake.lua
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
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/ui/include",
"lib/ui-server/include",
"lib/ui-widgets/include",
"lib/ui-cursor/include",
"lib/ui-xml/include",
"lib/ui-router/include",
"include",
{public = true}
)
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_tests")
set_default(false)
set_kind("binary")
set_rundir("tests")
add_includedirs("tests/include")
add_files("tests/run_tests.c", "tests/cases/*.c")
add_deps("ctest", "lcui")
on_run(function (target)
import("core.base.option")
local argv = {}
local options = {{nil, "memcheck", "k", nil, "enable memory check."}}
local args = option.raw_parse(option.get("arguments") or {}, options)
os.cd("$(scriptdir)/tests")
if args.memcheck then
if is_plat("windows") then
table.insert(argv, target:targetfile())
os.execv("drmemory", argv)
else
table.insert(argv, "valgrind")
table.insert(argv, "--leak-check=full")
table.insert(argv, "--error-exitcode=42")
table.insert(argv, "--num-callers=20")
table.insert(argv, target:targetfile())
os.execv("sudo", argv)
end
else
os.execv(target:targetfile())
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
add_configfiles("src/config.h.in")
set_configdir("include/LCUI")
add_deps(
"yutil",
"libthread",
"libptk",
"libworker",
"pandagl",
"libcss",
"libi18n",
"libui",
"libui-widgets",
"libui-cursor",
"libui-server",
"libui-router",
"libui-xml"
)
add_headerfiles("include/LCUI.h", "include/(LCUI/*.h)")