summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2020-06-13 16:42:32 +0800
committerruki <[email protected]>2020-06-13 16:42:32 +0800
commita6b6e1153c59d38a991c7198f91df2bc1a7d13bf (patch)
tree9f0e99aecde7eee5198f22338db5a53c5f9369d5
parent6ce4efe20902a233ae3be41c9a666c41e74b1e58 (diff)
optimize to delete files
-rw-r--r--xmake/core/project/target.lua12
1 files changed, 8 insertions, 4 deletions
diff --git a/xmake/core/project/target.lua b/xmake/core/project/target.lua
index af6413822..3df4128c5 100644
--- a/xmake/core/project/target.lua
+++ b/xmake/core/project/target.lua
@@ -1075,6 +1075,7 @@ function _instance:sourcefiles()
local count = 0
local sourcefiles = {}
local sourcefiles_deleted = {}
+ local deleted_count = 0
for _, file in ipairs(table.wrap(files)) do
-- mark as deleted files?
@@ -1107,6 +1108,7 @@ function _instance:sourcefiles()
-- add or delete it
if deleted then
+ deleted_count = deleted_count + 1
sourcefiles_deleted[sourcefile] = true
else
table.insert(sourcefiles, sourcefile)
@@ -1115,10 +1117,12 @@ function _instance:sourcefiles()
end
-- remove all deleted source files
- for i = #sourcefiles, 1, -1 do
- local sourcefile = sourcefiles[i]
- if sourcefiles_deleted[sourcefile] then
- table.remove(sourcefiles, i)
+ if deleted_count > 0 then
+ for i = #sourcefiles, 1, -1 do
+ local sourcefile = sourcefiles[i]
+ if sourcefiles_deleted[sourcefile] then
+ table.remove(sourcefiles, i)
+ end
end
end
self._SOURCEFILES = sourcefiles