diff options
| author | ruki <[email protected]> | 2016-06-23 10:10:37 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2016-06-23 10:10:37 +0800 |
| commit | 9927780525ca16f6c77a86c50b51f6a4fa8eb21a (patch) | |
| tree | cc9f5df10475a2fad2865d694540bed6234307b7 /xmake/core/project/config.lua | |
| parent | e5be4eb9b765b7b3aea3e3d603059e5480e1c7bb (diff) | |
fix configure and cache bug
Diffstat (limited to 'xmake/core/project/config.lua')
| -rw-r--r-- | xmake/core/project/config.lua | 66 |
1 files changed, 17 insertions, 49 deletions
diff --git a/xmake/core/project/config.lua b/xmake/core/project/config.lua index a732baed3..86055d05c 100644 --- a/xmake/core/project/config.lua +++ b/xmake/core/project/config.lua @@ -98,7 +98,7 @@ end -- load the project configure function config.load(targetname) - -- get the target name + -- check targetname = targetname or "all" -- load configure from the file first @@ -115,20 +115,13 @@ function config.load(targetname) end -- merge the target configure first - if targetname ~= "all" and results._TARGETS then + if results._TARGETS then for name, value in pairs(table.wrap(results._TARGETS[targetname])) do if config.get(name) == nil then config.set(name, value) end end end - - -- merge the root configure - for name, value in pairs(results) do - if config.get(name) == nil then - config.set(name, value) - end - end end -- ok @@ -138,46 +131,32 @@ end -- save the project configure function config.save(targetname) - -- get the target name + -- check targetname = targetname or "all" - -- load configure from the file first + -- load the previous results from configure local results = {} local filepath = config._file() if os.isfile(filepath) then results = io.load(filepath) or {} end - -- add version - results.__version = xmake._VERSION_SHORT - - -- update options for the given target - local target = nil - if targetname ~= "all" then - - -- the targets - local targets = results._TARGETS or {} - results._TARGETS = targets + -- the targets + local targets = results._TARGETS or {} + results._TARGETS = targets - -- clear target and get it - targets[targetname] = {} - target = targets[targetname] - else - - -- the targets - local targets = results._TARGETS - - -- clear the root target and get it - results = {_TARGETS = targets} - target = results - - end + -- clear target first + targets[targetname] = {} -- update target + local target = targets[targetname] for name, value in pairs(config.options()) do target[name] = value end + -- add version + results.__version = xmake._VERSION_SHORT + -- save it return io.save(config._file(), results) end @@ -201,7 +180,7 @@ end -- the configure has been changed for the given target? function config.changed(targetname) - -- get the target name + -- check targetname = targetname or "all" -- load configure from the file @@ -211,20 +190,9 @@ function config.changed(targetname) -- load it local results = io.load(filepath) - if results then - - -- get the target configure first - if targetname ~= "all" and results._TARGETS then - for name, value in pairs(table.wrap(results._TARGETS[targetname])) do - fileinfo[name] = value - end - end - - -- merge the root configure - for name, value in pairs(results) do - if fileinfo[name] == nil then - fileinfo[name] = value - end + if results and results._TARGETS then + for name, value in pairs(table.wrap(results._TARGETS[targetname])) do + fileinfo[name] = value end end end |
