1.0
This commit is contained in:
103
xmake.lua
Normal file
103
xmake.lua
Normal file
@@ -0,0 +1,103 @@
|
||||
set_project("dps_manager_server")
|
||||
set_version("0.1.0")
|
||||
set_languages("c11", "cxx17")
|
||||
set_warnings("all", "error")
|
||||
|
||||
add_rules("mode.debug", "mode.release")
|
||||
add_cxxflags("-Wno-deprecated-declarations", {tools = {"gcc", "clang"}})
|
||||
add_requires("openssl3", "zlib", "mariadb-connector-c")
|
||||
|
||||
if is_plat("linux") then
|
||||
add_syslinks("pthread")
|
||||
elseif is_plat("mingw", "windows") then
|
||||
add_defines("DPS_WINDOWS")
|
||||
add_syslinks("ws2_32")
|
||||
end
|
||||
|
||||
add_defines("OPENSSL_SUPPRESS_DEPRECATED")
|
||||
|
||||
target("dps_manager_server")
|
||||
set_kind("binary")
|
||||
add_includedirs("include")
|
||||
add_includedirs("third_party/libbcrypt/crypt_blowfish")
|
||||
add_packages("openssl3", "zlib", "mariadb-connector-c")
|
||||
add_files("src/*.cpp")
|
||||
add_files(
|
||||
"third_party/libbcrypt/crypt_blowfish/wrapper.c",
|
||||
"third_party/libbcrypt/crypt_blowfish/crypt_blowfish.c",
|
||||
"third_party/libbcrypt/crypt_blowfish/crypt_gensalt.c",
|
||||
{warnings = "none"}
|
||||
)
|
||||
add_headerfiles("include/(dps/*.hpp)")
|
||||
after_build(function (target)
|
||||
local project_config_dir = path.join(os.projectdir(), "config")
|
||||
local output_config_dir = path.join(target:targetdir(), "config")
|
||||
local config_files = {
|
||||
"server.conf",
|
||||
"server.conf.example",
|
||||
"server.windows.conf"
|
||||
}
|
||||
|
||||
os.mkdir(output_config_dir)
|
||||
for _, config_file in ipairs(config_files) do
|
||||
local source = path.join(project_config_dir, config_file)
|
||||
if os.isfile(source) then
|
||||
os.cp(source, path.join(output_config_dir, config_file))
|
||||
end
|
||||
end
|
||||
|
||||
if not target:is_plat("windows") then
|
||||
return
|
||||
end
|
||||
local pkg = target:pkg("mariadb-connector-c")
|
||||
if not pkg then
|
||||
return
|
||||
end
|
||||
local plugin_dir = path.join(pkg:installdir(), "lib", "mariadb", "plugin")
|
||||
if os.isdir(plugin_dir) then
|
||||
local output_dir = path.join(target:targetdir(), "mariadb-plugin")
|
||||
if os.isfile(output_dir) then
|
||||
os.rm(output_dir)
|
||||
end
|
||||
os.mkdir(output_dir)
|
||||
os.cp(path.join(plugin_dir, "*.dll"), output_dir)
|
||||
end
|
||||
end)
|
||||
|
||||
target("json_smoke_test")
|
||||
set_kind("binary")
|
||||
set_default(false)
|
||||
add_includedirs("include")
|
||||
add_files("tests/json_smoke_test.cpp", "src/json.cpp")
|
||||
|
||||
target("crypto_smoke_test")
|
||||
set_kind("binary")
|
||||
set_default(false)
|
||||
add_includedirs("include")
|
||||
add_includedirs("third_party/libbcrypt/crypt_blowfish")
|
||||
add_packages("openssl3", "zlib", "mariadb-connector-c")
|
||||
add_files(
|
||||
"tests/crypto_smoke_test.cpp",
|
||||
"src/app.cpp",
|
||||
"src/config.cpp",
|
||||
"src/fs_utils.cpp",
|
||||
"src/http.cpp",
|
||||
"src/json.cpp",
|
||||
"src/labels.cpp",
|
||||
"third_party/libbcrypt/crypt_blowfish/wrapper.c",
|
||||
"third_party/libbcrypt/crypt_blowfish/crypt_blowfish.c",
|
||||
"third_party/libbcrypt/crypt_blowfish/crypt_gensalt.c",
|
||||
{warnings = "none"}
|
||||
)
|
||||
|
||||
target("fs_utils_smoke_test")
|
||||
set_kind("binary")
|
||||
set_default(false)
|
||||
add_includedirs("include")
|
||||
add_files("tests/fs_utils_smoke_test.cpp", "src/fs_utils.cpp")
|
||||
|
||||
target("labels_smoke_test")
|
||||
set_kind("binary")
|
||||
set_default(false)
|
||||
add_includedirs("include")
|
||||
add_files("tests/labels_smoke_test.cpp", "src/labels.cpp")
|
||||
Reference in New Issue
Block a user