summaryrefslogtreecommitdiff
path: root/xmake/scripts/base/main.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2015-06-04 22:28:15 +0800
committerruki <[email protected]>2015-06-04 22:28:24 +0800
commit44fd11396d7b073e6b5227894c5db02b3585302f (patch)
treed755e4b6bd6c910559a3cb72dd32cd5d0d0e3f7c /xmake/scripts/base/main.lua
parentf0f9b217ddb81084a411d09a4a23292716b20c46 (diff)
impl auto rebuild and fix some bug
Diffstat (limited to 'xmake/scripts/base/main.lua')
-rw-r--r--xmake/scripts/base/main.lua53
1 files changed, 29 insertions, 24 deletions
diff --git a/xmake/scripts/base/main.lua b/xmake/scripts/base/main.lua
index 2624c8d53..2bd243ac4 100644
--- a/xmake/scripts/base/main.lua
+++ b/xmake/scripts/base/main.lua
@@ -425,13 +425,30 @@ function main._prepare_project()
-- load xmake.xconf file first
local errors = config.loadxconf()
- if not errors then
- -- load xmake.xproj file
- errors = project.loadxproj(options.file)
+ if errors then return errors end
+
+ -- xmake config or marked as "reconfig"?
+ if options._ACTION == "config" or config._RECONFIG then
+
+ -- wrap the configure for more convenient to get and set values
+ local config_wrapped = {}
+ setmetatable(config_wrapped,
+ {
+ __index = function(tbl, key)
+ return config.get(key)
+ end,
+ __newindex = function(tbl, key, val)
+ config.set(key, val)
+ end
+ })
+
+ -- probe the current platform configure
+ platform.probe(config_wrapped, false)
+
end
- -- ok?
- return errors
+ -- load xmake.xproj file
+ return project.loadxproj(options.file)
end
-- done help
@@ -527,25 +544,6 @@ function main._done_option()
return false
end
- -- xmake config?
- if options._ACTION == "config" then
-
- -- wrap the global configure for more convenient to get and set values
- local config_wrapped = {}
- setmetatable(config_wrapped,
- {
- __index = function(tbl, key)
- return config.get(key)
- end,
- __newindex = function(tbl, key, val)
- config.set(key, val)
- end
- })
-
- -- probe the current platform configure
- platform.probe(config_wrapped, false)
- end
-
-- make the current platform configure
if not platform.make() then
-- error
@@ -566,6 +564,13 @@ function main._done_option()
-- dump platform
platform.dump()
+ -- reconfig it first if marked as "reconfig"
+ if config._RECONFIG and not action.done("config") then
+ -- error
+ utils.error("reconfig failed for the changed host!")
+ return false
+ end
+
-- done action
return action.done(options._ACTION or "build")
end