114 lines
3.6 KiB
Lua
114 lines
3.6 KiB
Lua
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_packages("openssl3", "zlib", "mariadb-connector-c")
|
|
add_files("src/*.cpp")
|
|
if is_plat("linux") then
|
|
add_syslinks("crypt")
|
|
elseif is_plat("mingw", "windows") then
|
|
add_includedirs("third_party/libbcrypt/crypt_blowfish")
|
|
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"}
|
|
)
|
|
end
|
|
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_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"
|
|
)
|
|
if is_plat("linux") then
|
|
add_syslinks("crypt")
|
|
elseif is_plat("mingw", "windows") then
|
|
add_includedirs("third_party/libbcrypt/crypt_blowfish")
|
|
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"}
|
|
)
|
|
end
|
|
|
|
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")
|