diff options
Diffstat (limited to 'xmake')
| -rw-r--r-- | xmake/core/base/hash.lua | 4 | ||||
| -rw-r--r-- | xmake/core/package/package.lua | 8 |
2 files changed, 9 insertions, 3 deletions
diff --git a/xmake/core/base/hash.lua b/xmake/core/base/hash.lua index 362eb67e5..b40f7b885 100644 --- a/xmake/core/base/hash.lua +++ b/xmake/core/base/hash.lua @@ -104,12 +104,12 @@ end -- TODO, we should optimize it -- generate hash32 from string, e.g. "91e8ecf1" function hash.strhash32(str) - return hash.uuid4(str):split("-", {plain = true})[1]:lower() + return hash.xxhash64(bytes(str)):sub(1, 8) end -- generate hash128 from string, e.g. "91e8ecf1417f4edfa574e22d7d8d204a" function hash.strhash128(str) - return hash.uuid4(str):replace("-", "", {plain = true}):lower() + return hash.xxhash128(bytes(str)) end -- return module: hash diff --git a/xmake/core/package/package.lua b/xmake/core/package/package.lua index 4b0ddd036..4c68f277c 100644 --- a/xmake/core/package/package.lua +++ b/xmake/core/package/package.lua @@ -1687,6 +1687,12 @@ function _instance:_compute_buildhash() self:buildhash() end +-- hash.strhash128 has been switched to xxhash. +-- For compatibility, the old hash algorithm is still used here. +function _instance:_strhash128(str) + return hash.uuid4(str):replace("-", "", {plain = true}):lower() +end + -- get the build hash function _instance:buildhash() local buildhash = self._BUILDHASH @@ -1748,7 +1754,7 @@ function _instance:buildhash() table.sort(toolchains) str = str .. "_" .. table.concat(toolchains, "_") end - return hash.strhash128(str) + return self:_strhash128(str) end local function _get_installdir(...) local name = self:name():lower():gsub("::", "_") |
