diff options
| author | ruki <[email protected]> | 2020-11-17 00:41:59 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2020-11-17 00:41:59 +0800 |
| commit | 5126a44b24e0f3266e0f588308469225ff3d603d (patch) | |
| tree | 1b8561f1e9bea6cb35ecfcae053d8fcb415f1276 | |
| parent | 6bf2b94cd10acdf490bcef6d69add2615336ffa7 (diff) | |
improve add_resources
| -rw-r--r-- | xmake/core/package/package.lua | 24 |
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 |
