diff options
| author | ruki <[email protected]> | 2021-08-06 19:59:26 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-08-06 19:59:26 +0800 |
| commit | e81a667584eba128b74f754df45b65d3f7857594 (patch) | |
| tree | 4d54265552cb0805e1a855a93bde6dacb63e3f15 | |
| parent | 776f5e79c7396497ad0bb2f45cf939f5d4f9ddca (diff) | |
| parent | d467cd6844b9736418e1f447d8c01307044e0e8d (diff) | |
Merge pull request #1551 from xmake-io/find
improve xmake::find_package
| -rw-r--r-- | xmake/modules/package/manager/xmake/find_package.lua | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/xmake/modules/package/manager/xmake/find_package.lua b/xmake/modules/package/manager/xmake/find_package.lua index dab32de33..9f565c2b1 100644 --- a/xmake/modules/package/manager/xmake/find_package.lua +++ b/xmake/modules/package/manager/xmake/find_package.lua @@ -73,38 +73,32 @@ function _find_package_from_repo(name, opt) local links = {} local linkdirs = {} local libfiles = {} - for _, linkdir in ipairs(vars.linkdirs) do - table.insert(linkdirs, path.join(installdir, linkdir)) - end if vars.links then table.join2(links, vars.links) - end - if not vars.linkdirs or not vars.links then + else + -- we scan links automatically local found = false - for _, file in ipairs(os.files(path.join(installdir, "lib", "*"))) do - if file:endswith(".lib") or file:endswith(".a") then - found = true - if not vars.linkdirs then - table.insert(linkdirs, path.directory(file)) - end - if not vars.links then + for _, libdir in ipairs(vars.linkdirs or "lib") do + for _, file in ipairs(os.files(path.join(installdir, libdir, "*"))) do + if file:endswith(".lib") or file:endswith(".a") then + found = true table.insert(links, target.linkname(path.filename(file))) end end - end - if not found then - for _, file in ipairs(os.files(path.join(installdir, "lib", "*"))) do - if file:endswith(".so") or file:endswith(".dylib") then - if not vars.linkdirs then - table.insert(linkdirs, path.directory(file)) - end - if not vars.links then + if not found then + for _, file in ipairs(os.files(path.join(installdir, "lib", "*"))) do + if file:endswith(".so") or file:endswith(".dylib") then table.insert(links, target.linkname(path.filename(file))) end end end end end + if #links > 0 then + for _, libdir in ipairs(vars.linkdirs or "lib") do + table.insert(linkdirs, path.join(installdir, libdir)) + end + end if opt.plat == "windows" then for _, file in ipairs(os.files(path.join(installdir, "lib", "*.dll"))) do result.shared = true |
