71 lines
1.8 KiB
Lua
71 lines
1.8 KiB
Lua
add_rules("mode.debug", "mode.release")
|
|
add_rules("plugin.compile_commands.autoupdate")
|
|
|
|
set_warnings("all")
|
|
set_warnings("error")
|
|
|
|
add_requires("civetweb", "cjson", "leveldb", "jwt-cpp", "cryptopp", "nlohmann_json")
|
|
|
|
local npm = "npm"
|
|
if is_host("windows") then
|
|
npm = "npm.cmd"
|
|
end
|
|
|
|
target("jwt")
|
|
set_languages("c++23")
|
|
set_kind("static")
|
|
add_packages("jwt-cpp")
|
|
add_includedirs("include/jwt")
|
|
add_files("src/jwt/**.cpp")
|
|
|
|
target("hash")
|
|
set_languages("c++23")
|
|
set_kind("static")
|
|
add_packages("cryptopp")
|
|
add_includedirs("include/hash")
|
|
add_files("src/hash/**.cpp")
|
|
|
|
target("db")
|
|
set_languages("c++23")
|
|
set_kind("static")
|
|
add_packages("leveldb", "nlohmann_json")
|
|
add_deps("hash")
|
|
add_includedirs("include/db", "include")
|
|
add_files("src/db/**.cpp")
|
|
|
|
after_build(function (target)
|
|
local target_dir = target:targetdir()
|
|
os.cp("configs", target_dir)
|
|
if not os.exists(target_dir .. "/db") then
|
|
os.mkdir(target_dir .. "/db")
|
|
end
|
|
end)
|
|
|
|
target("server")
|
|
set_languages("c23")
|
|
set_kind("binary")
|
|
add_packages("civetweb", "cjson")
|
|
add_deps("jwt", "db")
|
|
add_includedirs("include")
|
|
add_files("src/server/**.c")
|
|
add_files("src/main.c")
|
|
|
|
target("ui")
|
|
on_build(function (target)
|
|
os.execv(npm, {"--prefix", "ui", "run", "build"})
|
|
local target_dir = target:targetdir()
|
|
os.cp("ui/dist", target_dir)
|
|
os.mv(target_dir .. "/dist", target_dir .. "/www")
|
|
end)
|
|
on_run(function (target)
|
|
os.execv(npm, {"--prefix", "ui", "run", "dev"})
|
|
end)
|
|
|
|
target("math")
|
|
add_deps("ui")
|
|
add_deps("server")
|
|
on_build(function (target) end)
|
|
on_run(function (target)
|
|
os.exec("xmake run server")
|
|
end)
|