summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2020-06-13 16:40:54 +0800
committerruki <[email protected]>2020-06-13 16:40:54 +0800
commit6ce4efe20902a233ae3be41c9a666c41e74b1e58 (patch)
tree71c4ca65a502f6b0d2c8b00c2fe0f515189ca380
parent0ab4d81aa9cfeebcb22721e27fcc7986c7c104ce (diff)
fix files order
-rw-r--r--xmake/core/project/target.lua19
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