summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xmake/actions/require/install.lua21
1 files changed, 17 insertions, 4 deletions
diff --git a/xmake/actions/require/install.lua b/xmake/actions/require/install.lua
index c9ddb0974..8217cd156 100644
--- a/xmake/actions/require/install.lua
+++ b/xmake/actions/require/install.lua
@@ -66,11 +66,24 @@ end
-- register all required local packages
function _register_required_packages(packages)
+ local registered_in_group = {}
for _, instance in ipairs(packages) do
- if instance:kind() ~= "binary" then
- local requireinfo = project.require(instance:alias() or instance:name())
- if requireinfo then
- _register_required_package(instance, requireinfo)
+
+ -- only register the first package in same group
+ local group = instance:group()
+ if not group or not registered_in_group[group] then
+
+ -- do not register binary package
+ if instance:kind() ~= "binary" then
+ local requireinfo = project.require(instance:alias() or instance:name())
+ if requireinfo then
+ _register_required_package(instance, requireinfo)
+ end
+ end
+
+ -- mark as registered in group
+ if group then
+ registered_in_group[group] = true
end
end
end