summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2021-01-04 22:50:00 +0800
committerruki <[email protected]>2021-01-04 22:50:00 +0800
commit137d7aaad42815de20089888c4e684c25f85f1ab (patch)
treef77b028eeb32586df4b5416a2350d36f6a4e40b3
parent5c52736f8dbda0a44e85aea22d949e0d01113ef6 (diff)
improve multiconfig
-rw-r--r--xmake/actions/require/impl/package.lua20
1 files changed, 15 insertions, 5 deletions
diff --git a/xmake/actions/require/impl/package.lua b/xmake/actions/require/impl/package.lua
index f1ed4c779..6ab30d8dc 100644
--- a/xmake/actions/require/impl/package.lua
+++ b/xmake/actions/require/impl/package.lua
@@ -420,6 +420,14 @@ end
-- load required packages
function _load_package(packagename, requireinfo, opt)
+ -- strip trailng ~tag, e.g. zlib~debug
+ local displayname
+ if packagename:find('~', 1, true) then
+ displayname = packagename
+ packagename = packagename:gsub("~.+$", "")
+ requireinfo.alias = requireinfo.alias or displayname
+ end
+
-- It exists conflict for dependent packages for each root packages? resolve it first
-- e.g.
-- add_requires("foo") -> bar -> zlib 1.2.10
@@ -485,12 +493,14 @@ function _load_package(packagename, requireinfo, opt)
package:requireinfo_set(requireinfo)
-- save display name
- local packageid = _memcache():get2("packageids", packagename)
- local displayname = packagename
- if packageid then
- displayname = displayname .. "#" .. tostring(packageid)
+ if not displayname then
+ local packageid = _memcache():get2("packageids", packagename)
+ displayname = packagename
+ if packageid then
+ displayname = displayname .. "#" .. tostring(packageid)
+ end
+ _memcache():set2("packageids", packagename, (packageid or 0) + 1)
end
- _memcache():set2("packageids", packagename, (packageid or 0) + 1)
package:displayname_set(displayname)
-- disable parallelize if the package cache directory conflicts