From a3996b2dbd5a294598a8f5122fa33b2dd92ea602 Mon Sep 17 00:00:00 2001 From: ruki Date: Wed, 17 Nov 2021 10:38:06 +0800 Subject: fix rule --- xmake/core/project/target.lua | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/xmake/core/project/target.lua b/xmake/core/project/target.lua index c48d64c47..922d7d483 100644 --- a/xmake/core/project/target.lua +++ b/xmake/core/project/target.lua @@ -1166,17 +1166,17 @@ function _instance:filerules(sourcefile) end -- get target rules from the given sourcekind or extension + -- + -- @note we prefer to use rules with extension because we need to be able to + -- override the language code rules set by set_sourcekinds + -- + -- e.g. set_extensions(".bpf.c") will override c++ rules + -- local rules_override = {} local filename = path.filename(sourcefile):lower() for _, r in ipairs(table.wrap(key2rules[path.extension(filename, 2)] or - key2rules[path.extension(filename)])) do - if self:extraconf("rules", r:name(), "override") then - table.insert(rules_override, r) - else - table.insert(rules, r) - end - end - for _, r in ipairs(table.wrap(key2rules[self:sourcekind_of(filename)])) do + key2rules[path.extension(filename)] or + key2rules[self:sourcekind_of(filename)])) do if self:extraconf("rules", r:name(), "override") then table.insert(rules_override, r) else -- cgit v1.3.1