summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2026-01-20 22:46:22 +0800
committerruki <[email protected]>2026-01-20 22:46:22 +0800
commitb60b96f6a3e938ec14fac22338b7e6f26f5962c6 (patch)
tree40004cd4cbf4ab369158cdca7846f30473f16eda
parent766a7a86a7af89c58038500985c9d8ec441de25f (diff)
fix to select scheme version
-rw-r--r--xmake/modules/private/action/require/impl/package.lua9
1 files changed, 5 insertions, 4 deletions
diff --git a/xmake/modules/private/action/require/impl/package.lua b/xmake/modules/private/action/require/impl/package.lua
index 629dd4af9..62a4398ce 100644
--- a/xmake/modules/private/action/require/impl/package.lua
+++ b/xmake/modules/private/action/require/impl/package.lua
@@ -345,9 +345,10 @@ end
-- select version from scheme
function _select_version_from_scheme(scheme, requireinfo)
- -- has git url?
+ -- check urls
+ local urls = scheme:urls()
local has_giturl = false
- for _, url in ipairs(scheme:urls()) do
+ for _, url in ipairs(urls) do
if git.checkurl(url) then
has_giturl = true
break
@@ -361,7 +362,7 @@ function _select_version_from_scheme(scheme, requireinfo)
local require_verify = requireinfo.verify
local is_system = requireinfo.system
local has_versionlist = scheme:get("versions") or scheme:get("versionfiles")
- if (not has_versionlist or require_verify == false)
+ if #urls > 0 and (not has_versionlist or require_verify == false)
and (semver.is_valid(require_version) or semver.is_valid_range(require_version)) then
-- no version list in package() or need not verify sha256sum? try selecting this version directly
-- @see
@@ -381,7 +382,7 @@ function _select_version_from_scheme(scheme, requireinfo)
end
end
-- local source package? we use a phony version
- if not version and require_version == "latest" and #scheme:urls() == 0 then
+ if not version and require_version == "latest" and #urls == 0 then
version = "latest"
source = "version"
end