boost: add fetch for ubuntu (#5695)
parent
e6881e7a04
commit
cc43a27c82
4 changed files with 105 additions and 25 deletions
@ -0,0 +1,73 @@ |
|||||||
|
import("lib.detect.find_library") |
||||||
|
import("lib.detect.find_tool") |
||||||
|
import("core.base.semver") |
||||||
|
|
||||||
|
function _get_python_libs() |
||||||
|
local opt = {version = true} |
||||||
|
local result = find_tool("python3", opt) |
||||||
|
if not result then |
||||||
|
result = find_tool("python", opt) |
||||||
|
end |
||||||
|
|
||||||
|
local libs = {} |
||||||
|
local version = result.version |
||||||
|
if version then |
||||||
|
local py_ver = semver.new(version) |
||||||
|
py_ver = py_ver:major() .. py_ver:minor() |
||||||
|
table.insert(libs, "python" .. py_ver) |
||||||
|
table.insert(libs, "numpy" .. py_ver) |
||||||
|
end |
||||||
|
return libs |
||||||
|
end |
||||||
|
|
||||||
|
function _add_info(linkinfo, result) |
||||||
|
if linkinfo then |
||||||
|
table.insert(result.linkdirs, linkinfo.linkdir) |
||||||
|
table.insert(result.libfiles, linkinfo.filename) |
||||||
|
table.insert(result.links, linkinfo.link) |
||||||
|
end |
||||||
|
end |
||||||
|
|
||||||
|
function main(package, opt) |
||||||
|
if opt.system then |
||||||
|
import("libs", {rootdir = package:scriptdir()}) |
||||||
|
|
||||||
|
local paths = { |
||||||
|
"/usr/lib", |
||||||
|
"/usr/lib64", |
||||||
|
"/usr/local/lib", |
||||||
|
"/usr/lib/x86_64-linux-gnu", |
||||||
|
} |
||||||
|
|
||||||
|
local result = { |
||||||
|
libfiles = {}, |
||||||
|
linkdirs = {}, |
||||||
|
links = {}, |
||||||
|
} |
||||||
|
|
||||||
|
local opt = { |
||||||
|
plat = package:plat(), |
||||||
|
kind = package:config("shared") and "shared" or "static", |
||||||
|
} |
||||||
|
|
||||||
|
local sub_libs_map = libs.get_sub_libs(package) |
||||||
|
sub_libs_map["python"] = _get_python_libs() |
||||||
|
table.insert(sub_libs_map.test, "test_exec_monitor") |
||||||
|
|
||||||
|
libs.for_each(function (libname) |
||||||
|
local sub_libs = sub_libs_map[libname] |
||||||
|
if sub_libs then |
||||||
|
for _, sub_libname in ipairs(sub_libs) do |
||||||
|
local linkinfo = find_library("boost_" .. sub_libname, paths, opt) |
||||||
|
_add_info(linkinfo, result) |
||||||
|
end |
||||||
|
else |
||||||
|
local linkinfo = find_library("boost_" .. libname, paths, opt) |
||||||
|
_add_info(linkinfo, result) |
||||||
|
end |
||||||
|
end) |
||||||
|
|
||||||
|
result.linkdirs = table.unique(result.linkdirs) |
||||||
|
return result |
||||||
|
end |
||||||
|
end |
Loading…
Reference in new issue