summaryrefslogtreecommitdiff
path: root/xmake/modules/private/action/require/impl/package.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2022-12-30 23:40:14 +0800
committerruki <[email protected]>2022-12-30 16:01:59 +0800
commitd1ef852ee0c6aeebac5ed7456f19f6793f00254d (patch)
tree3eae31d78c1a08ea006ec6ac94bfc25975be8f6b /xmake/modules/private/action/require/impl/package.lua
parent784ffcfa42c47554cc469f9a007eb39cd92e8f2d (diff)
improve to check circular deps
Diffstat (limited to 'xmake/modules/private/action/require/impl/package.lua')
-rw-r--r--xmake/modules/private/action/require/impl/package.lua6
1 files changed, 4 insertions, 2 deletions
diff --git a/xmake/modules/private/action/require/impl/package.lua b/xmake/modules/private/action/require/impl/package.lua
index 2708e2d91..0061034df 100644
--- a/xmake/modules/private/action/require/impl/package.lua
+++ b/xmake/modules/private/action/require/impl/package.lua
@@ -710,8 +710,10 @@ function _load_package(packagename, requireinfo, opt)
opt = opt or {}
if opt.requirepath then
local splitinfo = opt.requirepath:split(".", {plain = true})
- if #splitinfo > 1 and splitinfo[1] == splitinfo[#splitinfo] then
- raise("circular dependency(%s) detected in package(%s)!", opt.requirepath, packagename)
+ if #splitinfo > 3 and
+ splitinfo[1] == splitinfo[#splitinfo - 1] and
+ splitinfo[2] == splitinfo[#splitinfo] then
+ raise("circular dependency(%s) detected in package(%s)!", opt.requirepath, splitinfo[1])
end
end