diff options
| author | ruki <[email protected]> | 2022-09-27 00:42:29 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2022-09-27 00:42:29 +0800 |
| commit | 411e455ba256d4f67289a267f62a74930212c8f9 (patch) | |
| tree | 37f7de08a517453c1370fa5541d880690598fa1b /xmake/core/project/rule.lua | |
| parent | 76bced915dfb870a34528270a02236a3f5f6ff4e (diff) | |
add set_base to rules
Diffstat (limited to 'xmake/core/project/rule.lua')
| -rw-r--r-- | xmake/core/project/rule.lua | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/xmake/core/project/rule.lua b/xmake/core/project/rule.lua index 599294a45..841203c9d 100644 --- a/xmake/core/project/rule.lua +++ b/xmake/core/project/rule.lua @@ -150,6 +150,7 @@ function rule.apis() "rule.set_extensions" , "rule.set_sourcekinds" , "rule.set_kind" + , "rule.set_base" -- rule.add_xxx , "rule.add_deps" , "rule.add_imports" @@ -214,14 +215,31 @@ function rule.new(name, info) return instance end +-- get the base rule +function rule:base() + return self._BASE +end + -- get the rule info function rule:get(name) - return self._INFO:get(name) + local value = self._INFO:get(name) + if value == nil and self:base() then + value = self:base():get(name) + end + if value ~= nil then + return value + end end -- get the extra configuration function rule:extraconf(name, item, key) - return self._INFO:extraconf(name, item, key) + local value = self._INFO:extraconf(name, item, key) + if value == nil and self:base() then + value = self:base():extraconf(name) + end + if value ~= nil then + return value + end end -- get the rule name |
