summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2020-11-17 00:41:59 +0800
committerruki <[email protected]>2020-11-17 00:41:59 +0800
commit5126a44b24e0f3266e0f588308469225ff3d603d (patch)
tree1b8561f1e9bea6cb35ecfcae053d8fcb415f1276
parent6bf2b94cd10acdf490bcef6d69add2615336ffa7 (diff)
improve add_resources
-rw-r--r--xmake/core/package/package.lua24
1 files changed, 18 insertions, 6 deletions
diff --git a/xmake/core/package/package.lua b/xmake/core/package/package.lua
index 9f1baf523..36e9e3668 100644
--- a/xmake/core/package/package.lua
+++ b/xmake/core/package/package.lua
@@ -1029,13 +1029,25 @@ function _instance:resources()
local resourceinfos = self:get("resources")
if resourceinfos then
local version_str = self:version_str()
- resourceinfos = resourceinfos[version_str]
- if resourceinfos then
+ local resourceinfo = resourceinfos[version_str]
+ if resourceinfo then
resources = {}
- resourceinfos = table.wrap(resourceinfos)
- for idx = 1, #resourceinfos, 3 do
- local name = resourceinfos[idx]
- resources[name] = {url = resourceinfos[idx + 1], sha256 = resourceinfos[idx + 2]}
+ resourceinfo = table.wrap(resourceinfo)
+ for idx = 1, #resourceinfo, 3 do
+ local name = resourceinfo[idx]
+ resources[name] = {url = resourceinfo[idx + 1], sha256 = resourceinfo[idx + 2]}
+ end
+ else
+ -- match semver, e.g add_resources(">=1.0.0", name, url, sha256)
+ for range, resourceinfo in pairs(resourceinfos) do
+ if semver.satisfies(version_str, range) then
+ resources = resources or {}
+ resourceinfo = table.wrap(resourceinfo)
+ for idx = 1, #resourceinfo, 3 do
+ local name = resourceinfo[idx]
+ resources[name] = {url = resourceinfo[idx + 1], sha256 = resourceinfo[idx + 2]}
+ end
+ end
end
end
end