forked from Lamina-dev/Lamina
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathxmake.lua
More file actions
60 lines (59 loc) · 1.92 KB
/
xmake.lua
File metadata and controls
60 lines (59 loc) · 1.92 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
add_rules("mode.debug", "mode.release")
set_policy("package.include_external_headers", false)
add_requires("libuv 056e180e11c3a2ff7120f484da9d0f15a5776fd4")
add_requires("exprtk cc1b800c2bd1ac3ac260478c915d2aec6f4eb41c")
local function get_ver(os)
local res={
major=0,
minor=0,
patch=0,
version="0.0.0-Unknown"
}
local out,err=os.iorun("git describe --tags --abbrev=0")
if not err then
return res
end
res["version"]=string.trim(out)
res["major"],res["minor"],res["patch"]=string.match(res["version"],"v(%d+).(%d+).(%d+)")
res["version"]=res["version"]:sub(2)
return res
end
target("lamina_core")
set_kind("shared")
set_languages("c++20")
add_files(
"interpreter/**.cpp|main.cpp|repl_input.cpp|module.cpp|console_ui.cpp",
"extensions/**.cpp"
)
add_includedirs("interpreter")
add_headerfiles("interpreter/*.hpp")
add_packages("libuv")
add_packages("exprtk")
add_defines(
"LAMINA_CORE_EXPORTS",
"USE_LIBUV"
)
if is_plat("windows") then
add_links("imagehlp")
end
add_rules("utils.symbols.export_all")
set_configdir("interpreter")
add_configfiles("interpreter/*.in",{pattern="@(.-)@"})
on_load(function (target)
local ver=get_ver(os)
target:set("configvar","PROJECT_VERSION_MAJOR",ver["major"])
target:set("configvar","PROJECT_VERSION_MINOR",ver["minor"])
target:set("configvar","PROJECT_VERSION_PATCH",ver["patch"])
target:set("configvar","PROJECT_VERSION",ver["version"])
target:set("configvar","HELP_TEXT",io.readfile("interpreter/resources/help.txt"))
end)
target("lamina")
set_kind("binary")
set_languages("c++20")
add_deps("lamina_core")
add_files(
"interpreter/main.cpp",
"interpreter/repl_input.cpp",
"interpreter/console_ui.cpp"
)
add_includedirs("interpreter")