math/xmake.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)