summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2017-09-14 00:23:19 +0800
committerruki <[email protected]>2017-09-13 20:19:58 +0800
commitb1af9888679f0ac9384bba23a1b9d99d7b165db8 (patch)
tree5c6a458f2f631b2b313f44825d1473c122eb4a1c
parent421042632a667802b8a50580c83342d5282893c8 (diff)
fix package links when installing required package
-rw-r--r--xmake/actions/require/action/install.lua20
1 files changed, 19 insertions, 1 deletions
diff --git a/xmake/actions/require/action/install.lua b/xmake/actions/require/action/install.lua
index ce87f9c35..857849c07 100644
--- a/xmake/actions/require/action/install.lua
+++ b/xmake/actions/require/action/install.lua
@@ -81,6 +81,24 @@ function _install_for_generic(package)
os.cp(headerfile, dstheaderfile)
end
+ -- get links
+ local links = {}
+ for _, filename in ipairs(os.files(path.join(linkdir, target.filename("*", "static"))), path.filename) do
+ local link, count = filename:gsub(target.filename("([%w%-_]+)", "static"):gsub("%.", "%%.") .. "$", "%1")
+ if count > 0 then
+ table.insert(links, link)
+ end
+ end
+ if #links == 0 then
+ for _, filename in ipairs(os.files(path.join(linkdir, target.filename("*", "shared"))), path.filename) do
+ local link, count = filename:gsub(target.filename("([%w%-_]+)", "shared"):gsub("%.", "%%.") .. "$", "%1")
+ if count > 0 then
+ table.insert(links, link)
+ end
+ end
+ end
+ assert(#links > 0, "the library files not found in package %s", name)
+
-- make xmake.lua
local file = io.open(path.join(installdir, "xmake.lua"), "w")
if file then
@@ -113,7 +131,7 @@ option("%s")
]]
-- save file
- file:writef(content, name, name, name, name:upper(), name)
+ file:writef(content, name, name, name, name:upper(), table.concat(links, "\", \""))
-- exit file
file:close()