From 032d8ad7cf6690e15e63c463e72d1039eb4b8dd9 Mon Sep 17 00:00:00 2001 From: ruki Date: Sat, 24 Nov 2018 00:46:54 +0800 Subject: mark as registered in same group --- xmake/actions/require/install.lua | 21 +++++++++++++++++---- 1 file 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 -- cgit v1.3.1