diff options
| author | ruki <[email protected]> | 2020-09-24 22:54:54 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2020-09-24 22:54:54 +0800 |
| commit | e372ce038de7b5bb5e76655399f37bd366326b8e (patch) | |
| tree | 971a942cf1836db18d982d76f2accd49e909c85c /xmake/modules/package | |
| parent | f1642e450812a6128941eeae4bafba523215ec50 (diff) | |
add libpathes for find_package
Diffstat (limited to 'xmake/modules/package')
| -rw-r--r-- | xmake/modules/package/manager/vcpkg/find_package.lua | 4 | ||||
| -rw-r--r-- | xmake/modules/package/manager/xmake/find_package.lua | 16 |
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 |
