Files
Simple-Protocol-Lib/xmake.lua
Persson-dev 5beb5e92a7 zlib support (#9)
Reviewed-on: #9
Co-authored-by: Persson-dev <sim16.prib@gmail.com>
Co-committed-by: Persson-dev <sim16.prib@gmail.com>
2025-03-01 18:20:51 +00:00

82 lines
2.2 KiB
Lua

add_rules("mode.debug", "mode.release")
set_languages("c++17")
local modules = {
Compression = {
Option = "zlib",
Deps = {"zlib"},
Packages = {"zlib"},
Includes = {"include/(sp/extensions/Compress.h)"},
Sources = {"src/sp/extensions/Compress.cpp"}
}
}
-- Map modules to options
for name, module in table.orderpairs(modules) do
if module.Option then
option(module.Option, { description = "Enables the " .. name .. " module", default = true, category = "Modules" })
end
end
-- Add modules requirements
for name, module in table.orderpairs(modules) do
if module.Deps then
add_requires(module.Deps)
end
end
-- Add modules targets
for name, module in table.orderpairs(modules) do
if module.Deps and has_config(module.Option) then
target("SimpleProtocol-" .. name)
add_includedirs("include")
for _, include in table.orderpairs(module.Includes) do
add_headerfiles(include)
end
for _, source in table.orderpairs(module.Sources) do
add_files(source)
end
for _, package in table.orderpairs(module.Packages) do
add_packages(package)
end
set_group("Library")
set_kind("$(kind)")
end
end
target("SimpleProtocol")
add_includedirs("include")
add_files("src/sp/**.cpp")
local includeFolders = {"common", "default", "io", "protocol"}
for _, folder in ipairs(includeFolders) do
add_headerfiles("include/(sp/" .. folder .. "/**.h)")
end
-- adding extensions
for name, module in table.orderpairs(modules) do
if module.Deps and has_config(module.Option) then
add_deps("SimpleProtocol-" .. name)
end
end
-- we don't want extensions
remove_files("src/sp/extensions/**.cpp")
set_group("Library")
set_kind("$(kind)")
-- Tests
for _, file in ipairs(os.files("test/**.cpp")) do
local name = path.basename(file)
target(name)
set_kind("binary")
add_files(file)
add_includedirs("include")
add_deps("SimpleProtocol")
add_tests("compile_and_run")
end