diff options
| author | ruki <[email protected]> | 2021-01-04 22:50:00 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-01-04 22:50:00 +0800 |
| commit | 137d7aaad42815de20089888c4e684c25f85f1ab (patch) | |
| tree | f77b028eeb32586df4b5416a2350d36f6a4e40b3 | |
| parent | 5c52736f8dbda0a44e85aea22d949e0d01113ef6 (diff) | |
improve multiconfig
| -rw-r--r-- | xmake/actions/require/impl/package.lua | 20 |
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 |
