summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2022-09-24 00:10:58 +0800
committerruki <[email protected]>2022-09-24 00:11:17 +0800
commitbde66d2ecfee6b7ccab0f51b2f2358b0917b1f11 (patch)
tree411f6c0181cf3e5cb4fe6492683a3e929cc2fc41
parentde1634ee9be411eb30373f472e095327c6dfc696 (diff)
improve to detect package
-rw-r--r--xmake/modules/private/action/trybuild/xrepo.lua31
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