82 lines
2.2 KiB
Lua
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("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
|
|
|
|
-- adding extensions
|
|
for name, module in table.orderpairs(modules) do
|
|
if module.Deps and has_config(module.Option) then
|
|
add_deps("SimpleProtocolLib-" .. 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("SimpleProtocolLib")
|
|
|
|
add_tests("compile_and_run")
|
|
end
|