diff options
| author | ruki <[email protected]> | 2020-06-13 16:40:54 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2020-06-13 16:40:54 +0800 |
| commit | 6ce4efe20902a233ae3be41c9a666c41e74b1e58 (patch) | |
| tree | 71c4ca65a502f6b0d2c8b00c2fe0f515189ca380 | |
| parent | 0ab4d81aa9cfeebcb22721e27fcc7986c7c104ce (diff) | |
fix files order
| -rw-r--r-- | xmake/core/project/target.lua | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/xmake/core/project/target.lua b/xmake/core/project/target.lua index fa400b5dd..af6413822 100644 --- a/xmake/core/project/target.lua +++ b/xmake/core/project/target.lua @@ -1074,6 +1074,7 @@ function _instance:sourcefiles() local i = 1 local count = 0 local sourcefiles = {} + local sourcefiles_deleted = {} for _, file in ipairs(table.wrap(files)) do -- mark as deleted files? @@ -1106,22 +1107,24 @@ function _instance:sourcefiles() -- add or delete it if deleted then - sourcefiles[sourcefile] = nil + sourcefiles_deleted[sourcefile] = true else - sourcefiles[sourcefile] = true + table.insert(sourcefiles, sourcefile) end end end - -- make last source files - local sourcefiles_last = {} - for sourcefile, _ in pairs(sourcefiles) do - table.insert(sourcefiles_last, sourcefile) + -- remove all deleted source files + for i = #sourcefiles, 1, -1 do + local sourcefile = sourcefiles[i] + if sourcefiles_deleted[sourcefile] then + table.remove(sourcefiles, i) + end end - self._SOURCEFILES = sourcefiles_last + self._SOURCEFILES = sourcefiles -- ok and sourcefiles are modified - return sourcefiles_last, true + return sourcefiles, true end -- get object file from source file |
