summaryrefslogtreecommitdiff
path: root/xmake/modules/package
diff options
context:
space:
mode:
authorruki <[email protected]>2020-09-24 22:54:54 +0800
committerruki <[email protected]>2020-09-24 22:54:54 +0800
commite372ce038de7b5bb5e76655399f37bd366326b8e (patch)
tree971a942cf1836db18d982d76f2accd49e909c85c /xmake/modules/package
parentf1642e450812a6128941eeae4bafba523215ec50 (diff)
add libpathes for find_package
Diffstat (limited to 'xmake/modules/package')
-rw-r--r--xmake/modules/package/manager/vcpkg/find_package.lua4
-rw-r--r--xmake/modules/package/manager/xmake/find_package.lua16
2 files changed, 17 insertions, 3 deletions
diff --git a/xmake/modules/package/manager/vcpkg/find_package.lua b/xmake/modules/package/manager/vcpkg/find_package.lua
index 711d9b44b..4a22c6c11 100644
--- a/xmake/modules/package/manager/vcpkg/find_package.lua
+++ b/xmake/modules/package/manager/vcpkg/find_package.lua
@@ -88,8 +88,10 @@ function main(name, opt)
result = result or {}
result.links = result.links or {}
result.linkdirs = result.linkdirs or {}
+ result.libpathes = result.libpathes or {}
table.insert(result.linkdirs, path.join(installdir, path.directory(line)))
table.insert(result.links, target.linkname(path.filename(line)))
+ table.insert(result.libpathes, path.join(installdir, path.directory(line), path.filename(line)))
end
end
@@ -98,7 +100,9 @@ function main(name, opt)
if line:find(plat .. (mode == "debug" and "/debug" or "") .. "/bin/", 1, true) then
result = result or {}
result.linkdirs = result.linkdirs or {}
+ result.libpathes = result.libpathes or {}
table.insert(result.linkdirs, path.join(installdir, path.directory(line)))
+ table.insert(result.libpathes, path.join(installdir, path.directory(line), path.filename(line)))
end
end
end
diff --git a/xmake/modules/package/manager/xmake/find_package.lua b/xmake/modules/package/manager/xmake/find_package.lua
index 6466aca40..9cdaa3885 100644
--- a/xmake/modules/package/manager/xmake/find_package.lua
+++ b/xmake/modules/package/manager/xmake/find_package.lua
@@ -70,6 +70,7 @@ function _find_package_from_repo(name, opt)
-- get links and link directories
local links = {}
local linkdirs = {}
+ local libpathes = {}
for _, linkdir in ipairs(vars.linkdirs) do
table.insert(linkdirs, path.join(installdir, linkdir))
end
@@ -102,6 +103,11 @@ function _find_package_from_repo(name, opt)
end
end
end
+ if opt.plat == "windows" then
+ for _, file in ipairs(os.files(path.join(installdir, "bin", "*.dll"))) do
+ table.insert(libpathes, file)
+ end
+ end
-- add root link directories
if #linkdirs == 0 then
@@ -117,14 +123,17 @@ function _find_package_from_repo(name, opt)
for _, link in ipairs(links) do
local libinfo = find_library(link, linkdirs)
if libinfo then
- result.links = table.join(result.links or {}, libinfo.link)
- result.linkdirs = table.join(result.linkdirs or {}, libinfo.linkdir)
+ result.links = table.join(result.links or {}, libinfo.link)
+ result.linkdirs = table.join(result.linkdirs or {}, libinfo.linkdir)
+ result.libpathes = table.join(result.libpathes or {}, path.join(libinfo.linkdir, libinfo.filename))
end
end
- -- make unique links
if result.links then
result.links = table.unique(result.links)
end
+ if result.libpathes then
+ result.libpathes = table.join(result.libpathes, libpathes)
+ end
-- inherit the other prefix variables
for name, values in pairs(vars) do
@@ -227,6 +236,7 @@ function _find_package_from_packagedirs(name, opt)
result = result or {}
result.links = table.join(result.links or {}, libinfo.link)
result.linkdirs = table.join(result.linkdirs or {}, libinfo.linkdir)
+ result.libpathes = table.join(result.libpathes or {}, path.join(libinfo.linkdir, libinfo.filename))
end
end