Files
Simple-Protocol-Lib/xmake.lua
Persson-dev 03d799e064 Add generic IO (#3)
Reviewed-on: #3
Co-authored-by: Persson-dev <sim16.prib@gmail.com>
Co-committed-by: Persson-dev <sim16.prib@gmail.com>
2025-02-26 09:29:31 +00:00

75 lines
2.0 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("SimpleProtocolLib-" .. 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("SimpleProtocolLib")
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
-- 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("SimpleProtocolLib")
add_tests("compile_and_run")
end