diff options
| author | ruki <[email protected]> | 2018-12-07 00:54:03 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2018-12-06 23:24:51 +0800 |
| commit | b4f35402ca2a97708dc46f6e48d60a3f5bf02f5e (patch) | |
| tree | 2295e9ccea8377ea90b9407edce14bdb443e9970 /xmake/core/base/interpreter.lua | |
| parent | b03855d7dbc88bc38c07d7b62ea73de0dbbef9f6 (diff) | |
improve set_config
Diffstat (limited to 'xmake/core/base/interpreter.lua')
| -rw-r--r-- | xmake/core/base/interpreter.lua | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/xmake/core/base/interpreter.lua b/xmake/core/base/interpreter.lua index 0f5f60ebf..9c2d35450 100644 --- a/xmake/core/base/interpreter.lua +++ b/xmake/core/base/interpreter.lua @@ -1066,6 +1066,11 @@ end -- set_$(name1)("key", "value1") -- set_$(name2)("key", "value1", "value2", ...) -- +-- get: +-- +-- get("name") => {key => values} +-- get("name.key") => values +-- function interpreter:api_register_set_keyvalues(scope_kind, ...) -- define implementation @@ -1080,14 +1085,18 @@ function interpreter:api_register_set_keyvalues(scope_kind, ...) extra_config = nil end - -- save values - name = name .. "." .. key - scope[name] = values + -- save values to "name" + scope[name] = scope[name] or {} + scope[name][key] = values + + -- save values to "name.key" + local name_key = name .. "." .. key + scope[name_key] = values -- save extra config if extra_config then - scope["__extra_" .. name] = scope["__extra_" .. name] or {} - local extrascope = scope["__extra_" .. name] + scope["__extra_" .. name_key] = scope["__extra_" .. name_key] or {} + local extrascope = scope["__extra_" .. name_key] for _, value in ipairs(values) do extrascope[value] = extra_config end @@ -1116,14 +1125,18 @@ function interpreter:api_register_add_keyvalues(scope_kind, ...) extra_config = nil end - -- save values - name = name .. "." .. key - scope[name] = table.join2(scope[name] or {}, values) + -- save values to "name" + scope[name] = scope[name] or {} + scope[name][key] = table.join2(scope[name][key] or {}, values) + + -- save values to "name.key" + local name_key = name .. "." .. key + scope[name_key] = scope[name][key] -- save extra config if extra_config then - scope["__extra_" .. name] = scope["__extra_" .. name] or {} - local extrascope = scope["__extra_" .. name] + scope["__extra_" .. name_key] = scope["__extra_" .. name_key] or {} + local extrascope = scope["__extra_" .. name_key] for _, value in ipairs(values) do extrascope[value] = extra_config end |
