diff options
| author | ruki <[email protected]> | 2022-09-24 00:10:58 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2022-09-24 00:11:17 +0800 |
| commit | bde66d2ecfee6b7ccab0f51b2f2358b0917b1f11 (patch) | |
| tree | 411f6c0181cf3e5cb4fe6492683a3e929cc2fc41 | |
| parent | de1634ee9be411eb30373f472e095327c6dfc696 (diff) | |
improve to detect package
| -rw-r--r-- | xmake/modules/private/action/trybuild/xrepo.lua | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/xmake/modules/private/action/trybuild/xrepo.lua b/xmake/modules/private/action/trybuild/xrepo.lua index bd35cfb5a..90689adad 100644 --- a/xmake/modules/private/action/trybuild/xrepo.lua +++ b/xmake/modules/private/action/trybuild/xrepo.lua @@ -54,7 +54,7 @@ function detect() if pos then packagename = dirname:sub(1, pos - 1) if packagename:endswith("-") or packagename:endswith("_") then - packagename = packagename:sub(1, #packagename - 1) + packagename = packagename:sub(1, #packagename - 1):lower() end end end @@ -65,17 +65,30 @@ function detect() -- search packages local result - for name, packages in pairs(search_packages(packagename, {require_version = version and version:rawstr() or nil})) do - if #packages > 0 then - local package = packages[1] - _g.package = package - if package.version then - return ("%s %s in %s"):format(package.name, package.version, package.reponame) - else - return ("%s in %s"):format(package.name, package.reponame) + local packages_found = search_packages(packagename, {require_version = version and version:rawstr() or nil}) + for name, packages in pairs(packages_found) do + for _, package in ipairs(packages) do + if package.name == packagename then + result = package + break end end end + if not result then + for name, packages in pairs(packages_found) do + if #packages > 0 then + result = packages[1] + end + end + end + if result then + _g.package = result + if result.version then + return ("%s %s in %s"):format(result.name, result.version, result.reponame) + else + return ("%s in %s"):format(result.name, result.reponame) + end + end end -- get common configs |
