summaryrefslogtreecommitdiff
path: root/xmake/scripts
diff options
context:
space:
mode:
authorruki <[email protected]>2015-05-12 09:06:03 +0800
committerruki <[email protected]>2015-05-12 09:06:21 +0800
commit7a187d3be10e1aeced3b1cc84a1d3b458ecfc53d (patch)
tree19a47b69d2cc1b8684b890e24ce3cc2fa06cc54f /xmake/scripts
parenta0185c1df5558103ca4c510036088a17bf379c94 (diff)
enable boolean for only key option and add is_absolute
Diffstat (limited to 'xmake/scripts')
-rw-r--r--xmake/scripts/action/config.lua13
-rw-r--r--xmake/scripts/base/main.lua4
-rw-r--r--xmake/scripts/base/option.lua4
3 files changed, 13 insertions, 8 deletions
diff --git a/xmake/scripts/action/config.lua b/xmake/scripts/action/config.lua
index e12ac898c..fb822422e 100644
--- a/xmake/scripts/action/config.lua
+++ b/xmake/scripts/action/config.lua
@@ -31,13 +31,16 @@ function config._save_option(file, option)
-- check
assert(file and option)
-
- -- save number
- if type(option) == "number" then
- file:write(option)
+
-- save string
- elseif type(option) == "string" then
+ if type(option) == "string" then
file:write(string.format("%q", option))
+ -- save boolean
+ elseif type(option) == "boolean" then
+ file:write(tostring(option))
+ -- save number
+ elseif type(option) == "number" then
+ file:write(option)
-- save table
elseif type(option) == "table" then
diff --git a/xmake/scripts/base/main.lua b/xmake/scripts/base/main.lua
index 811f0a650..ff4ddfaac 100644
--- a/xmake/scripts/base/main.lua
+++ b/xmake/scripts/base/main.lua
@@ -271,7 +271,9 @@ function main._done_option()
-- init the xmake.lua file path
options.file = options.file or options._DEFAULTS.file or "xmake.lua"
- options.file = path.absolute(options.file, options.project)
+ if not path.is_absolute(options.file) then
+ options.file = path.absolute(options.file, options.project)
+ end
assert(options.file)
-- load and execute the xmake.lua script of the given project
diff --git a/xmake/scripts/base/option.lua b/xmake/scripts/base/option.lua
index 13ac012d9..89a346a9d 100644
--- a/xmake/scripts/base/option.lua
+++ b/xmake/scripts/base/option.lua
@@ -65,7 +65,7 @@ function option.init(argv, menu)
-- only key?
else
key = arg
- value = ""
+ value = true
end
-- --key?
@@ -151,7 +151,7 @@ function option.init(argv, menu)
end
-- check mode
- if (opt[3] == "k" and #value ~= 0) or (opt[3] == "kv" and #value == 0) then
+ if (opt[3] == "k" and type(value) ~= "boolean") or (opt[3] == "kv" and type(value) ~= "string") then
-- invalid option
print("invalid option: " .. arg)