package An official xmake package repository
https://xrepo.xmake.io/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
220 lines
3.4 KiB
220 lines
3.4 KiB
local sorted_libs = { |
|
"wave", |
|
"url", |
|
"type_erasure", |
|
"timer", |
|
"test", |
|
"stacktrace", |
|
"program_options", |
|
"process", |
|
"nowide", |
|
"log", |
|
"locale", |
|
"json", |
|
"iostreams", |
|
"graph_parallel", |
|
"mpi", |
|
"python", |
|
"graph", |
|
"serialization", |
|
"regex", |
|
"math", |
|
"random", |
|
"fiber", |
|
"filesystem", |
|
"coroutine", |
|
"contract", |
|
"thread", |
|
"date_time", |
|
"exception", |
|
"cobalt", |
|
"context", |
|
"container", |
|
"chrono", |
|
"system", |
|
"charconv", |
|
"atomic" |
|
} |
|
|
|
local libs_dep = { |
|
json = { |
|
"container", |
|
"system" |
|
}, |
|
python = { |
|
"graph" |
|
}, |
|
test = { |
|
"exception" |
|
}, |
|
type_erasure = { |
|
"thread" |
|
}, |
|
thread = { |
|
"atomic", |
|
"chrono", |
|
"container", |
|
"date_time", |
|
"exception", |
|
"system" |
|
}, |
|
fiber = { |
|
"context", |
|
"filesystem" |
|
}, |
|
chrono = { |
|
"system" |
|
}, |
|
charconv = { }, |
|
contract = { |
|
"exception", |
|
"thread" |
|
}, |
|
timer = { }, |
|
wave = { |
|
"filesystem", |
|
"serialization" |
|
}, |
|
stacktrace = { }, |
|
coroutine = { |
|
"context", |
|
"exception", |
|
"system" |
|
}, |
|
math = { |
|
"random" |
|
}, |
|
exception = { }, |
|
filesystem = { |
|
"atomic", |
|
"system" |
|
}, |
|
date_time = { }, |
|
atomic = { }, |
|
url = { |
|
"system" |
|
}, |
|
serialization = { }, |
|
process = { |
|
"filesystem", |
|
"system" |
|
}, |
|
regex = { }, |
|
container = { }, |
|
random = { |
|
"system" |
|
}, |
|
nowide = { |
|
"filesystem" |
|
}, |
|
program_options = { }, |
|
system = { }, |
|
cobalt = { |
|
"container", |
|
"context", |
|
"system" |
|
}, |
|
graph = { |
|
"math", |
|
"random", |
|
"regex", |
|
"serialization" |
|
}, |
|
context = { }, |
|
mpi = { |
|
"graph", |
|
"python", |
|
"serialization" |
|
}, |
|
log = { |
|
"atomic", |
|
"date_time", |
|
"exception", |
|
"filesystem", |
|
"random", |
|
"regex", |
|
"system", |
|
"thread" |
|
}, |
|
iostreams = { |
|
"random", |
|
"regex" |
|
}, |
|
locale = { |
|
"thread" |
|
}, |
|
graph_parallel = { |
|
"filesystem", |
|
"graph", |
|
"mpi", |
|
"random", |
|
"serialization" |
|
} |
|
} |
|
|
|
local header_only_buildable = { |
|
"graph_parallel", |
|
"system", |
|
"exception", |
|
"regex", |
|
"math", |
|
} |
|
|
|
function get_libs() |
|
return sorted_libs |
|
end |
|
|
|
function get_lib_deps() |
|
return libs_dep |
|
end |
|
|
|
function get_header_only_buildable() |
|
return header_only_buildable |
|
end |
|
|
|
function for_each(lambda) |
|
for _, libname in ipairs(get_libs()) do |
|
lambda(libname) |
|
end |
|
end |
|
|
|
function for_each_header_only_buildable_lib(lambda) |
|
for _, libname in ipairs(get_header_only_buildable()) do |
|
lambda(libname) |
|
end |
|
end |
|
|
|
function for_each_lib_deps(lambda) |
|
for libname, deps in pairs(get_lib_deps()) do |
|
lambda(libname, deps) |
|
end |
|
end |
|
|
|
function get_sub_libs(package) |
|
local sub_libs_map = { |
|
test = {"prg_exec_monitor", "unit_test_framework"}, |
|
serialization = {"wserialization", "serialization"}, |
|
fiber = {"fiber", "fiber_numa"}, |
|
log = {"log", "log_setup"}, |
|
stacktrace = { |
|
"stacktrace_noop", |
|
"stacktrace_backtrace", |
|
"stacktrace_addr2line", |
|
"stacktrace_basic", |
|
"stacktrace_windbg", |
|
"stacktrace_windbg_cached", |
|
}, |
|
} |
|
|
|
if package:config("python") then |
|
local py_ver = assert(package:dep("python"):version(), "Can't get python version") |
|
py_ver = py_ver:major() .. py_ver:minor() |
|
-- TODO: detect numpy |
|
sub_libs_map["python"] = { |
|
"python" .. py_ver, |
|
"numpy" .. py_ver, |
|
} |
|
end |
|
|
|
return sub_libs_map |
|
end
|
|
|