diff options
| author | ruki <[email protected]> | 2018-04-10 21:01:46 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2018-04-10 00:10:39 +0800 |
| commit | 483f101b3fe1502ce4daca8d47058dba4cd27dee (patch) | |
| tree | 80b24ac81f7b0badf744489c000defe609b09c16 /xmake/core/project/rule.lua | |
| parent | c59a2f071f53f88516bb487e5bcef37d027ecc43 (diff) | |
seperate project and global rules
Diffstat (limited to 'xmake/core/project/rule.lua')
| -rw-r--r-- | xmake/core/project/rule.lua | 35 |
1 files changed, 14 insertions, 21 deletions
diff --git a/xmake/core/project/rule.lua b/xmake/core/project/rule.lua index f915ca459..34d9bc843 100644 --- a/xmake/core/project/rule.lua +++ b/xmake/core/project/rule.lua @@ -30,7 +30,6 @@ local os = require("base/os") local path = require("base/path") local utils = require("base/utils") local table = require("base/table") -local project = require("project/project") local global = require("base/global") local interpreter = require("base/interpreter") local config = require("project/config") @@ -42,8 +41,7 @@ local sandbox_module = require("sandbox/modules/import/core/sandbox/module") function rule._directories() -- the directories - return { path.join(config.directory(), "rules") - , path.join(global.directory(), "rules") + return { path.join(global.directory(), "rules") , path.join(os.programdir(), "rules") } end @@ -348,7 +346,12 @@ function rule:script(name, generic) return result end --- get all rules +-- get the given global rule +function rule.rule(name) + return rule.rules()[name] +end + +-- get global rules function rule.rules() -- return it directly if exists @@ -373,33 +376,23 @@ function rule.rules() if results then table.join2(rules, results) else - return nil, errors + os.raise(errors) end end end end - -- merge project rules if exists - local project_rules, errors = project.rules() - if project_rules then - - -- save rules - for rulename, ruleinfo in pairs(project_rules) do - if rules[rulename] == nil then - rules[rulename] = ruleinfo - else - utils.warning("rule(\"%s\") has been defined!", rulename) - end - end - else - return nil, errors + -- make rule instances + local instances = {} + for rulename, ruleinfo in pairs(rules) do + instances[rulename] = rule.new(rulename, ruleinfo) end -- save it - rule._RULES = rules + rule._RULES = instances -- ok? - return rules + return rule._RULES end -- return module |
