|
@@ -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
|