Ensure module import order on Clang
@@ -714,9 +714,16 @@ function get_requiresflags(target, requires)
local flags = {}
local modulemap = _get_modulemap_from_mapper(target)
-- add deps required module flags
+ local already_mapped_modules = {}
for name, _ in pairs(requires) do
+ -- if already in flags, continue
+ if already_mapped_modules[name] then
+ goto continue
+ end
+
for _, dep in ipairs(target:orderdeps()) do
local modulemap_ = _get_modulemap_from_mapper(dep)
+ already_mapped_modules[name] = true
if modulemap_[name] then
table.join2(flags, modulemap_[name].flag)
table.join2(flags, modulemap_[name].deps or {})
