summaryrefslogtreecommitdiff
path: root/xmake/core/package/package.lua
diff options
context:
space:
mode:
Diffstat (limited to 'xmake/core/package/package.lua')
-rw-r--r--xmake/core/package/package.lua54
1 files changed, 33 insertions, 21 deletions
diff --git a/xmake/core/package/package.lua b/xmake/core/package/package.lua
index 98fd4bb97..52a3eba13 100644
--- a/xmake/core/package/package.lua
+++ b/xmake/core/package/package.lua
@@ -119,6 +119,17 @@ function _instance:urls_set(urls)
self._URLS = urls
end
+-- get the alias of url, @note need raw url
+function _instance:url_alias(url)
+ local urls_extra = self:get("__extra_urls")
+ if urls_extra then
+ local urlextra = urls_extra[url]
+ if urlextra then
+ return urlextra.alias
+ end
+ end
+end
+
-- get deps
function _instance:deps()
return self._DEPS
@@ -129,29 +140,25 @@ function _instance:orderdeps()
return self._ORDERDEPS
end
--- get sha256
-function _instance:sha256()
+-- get sha256 of the url_alias@version_str
+function _instance:sha256(url_alias)
- -- get it from cache first
- if self._SHA256 then
- return self._SHA256
- end
+ -- get sha256
+ local sha256s = self:get("sha256s")
+ local version_str = self:version_str()
+ if sha256s and version_str then
- -- find sha256
- local version = self:version()
- local sha256s = table.wrap(self:get("sha256s"))
- local versions = table.wrap(self:get("versions"))
- if version then
- for idx, ver in ipairs(versions) do
- if ver == version then
- self._SHA256 = sha256s[idx]
- break
- end
+ local sha256 = nil
+ if url_alias then
+ sha256 = sha256s[url_alias .. "@" ..version_str]
+ end
+ if not sha256 then
+ sha256 = sha256s[version_str]
end
- end
- -- get it
- return self._SHA256
+ -- ok?
+ return sha256
+ end
end
-- this package is from system/local/global?
@@ -378,14 +385,12 @@ function package.apis()
-- package.set_xxx
"package.set_urls"
, "package.set_kind"
- , "package.set_sha256s"
, "package.set_versions"
, "package.set_homepage"
, "package.set_description"
-- package.add_xxx
, "package.add_deps"
, "package.add_urls"
- , "package.add_sha256s"
, "package.add_imports"
, "package.add_versions"
}
@@ -406,6 +411,13 @@ function package.apis()
, "package.after_install"
, "package.after_test"
}
+ , dictionary =
+ {
+ -- package.set_xxx
+ "package.set_sha256s"
+ -- package.add_xxx
+ , "package.add_sha256s"
+ }
}
end