summaryrefslogtreecommitdiff
path: root/xmake/plugins
diff options
context:
space:
mode:
authorruki <[email protected]>2016-09-16 22:27:55 +0800
committerruki <[email protected]>2016-09-16 22:27:55 +0800
commitb70792995b5a0e4253ca83f09efa565c72a0cb88 (patch)
tree869639d552577181773289d4645dbf5d8b78ecf3 /xmake/plugins
parent388f45327004d82fa2261f680a2b89a4620609a4 (diff)
fix vs201x filters bug
Diffstat (limited to 'xmake/plugins')
-rw-r--r--xmake/plugins/project/vstudio/impl/vs201x_vcxproj_filters.lua15
1 files changed, 9 insertions, 6 deletions
diff --git a/xmake/plugins/project/vstudio/impl/vs201x_vcxproj_filters.lua b/xmake/plugins/project/vstudio/impl/vs201x_vcxproj_filters.lua
index 675664c51..969edf240 100644
--- a/xmake/plugins/project/vstudio/impl/vs201x_vcxproj_filters.lua
+++ b/xmake/plugins/project/vstudio/impl/vs201x_vcxproj_filters.lua
@@ -67,13 +67,16 @@ function _make_filters(filtersfile, vsinfo, target, vcxprojdir)
-- add filters
filtersfile:enter("<ItemGroup>")
local exists = {}
- for _, filepath in pairs(table.join(target:sourcefiles(), target:headerfiles())) do
+ for _, filepath in pairs(table.join(target:sourcefiles(), (target:headerfiles()))) do
local filter = _make_filter(filepath, target, vcxprojdir)
- if filter and not exists[filter] then
- filtersfile:enter("<Filter Include=\"%s\">", filter)
- filtersfile:print("<UniqueIdentifier>{%s}</UniqueIdentifier>", os.uuid(filter))
- filtersfile:leave("</Filter>")
- exists[filter] = true
+ while filter and filter ~= '.' do
+ if not exists[filter] then
+ filtersfile:enter("<Filter Include=\"%s\">", filter)
+ filtersfile:print("<UniqueIdentifier>{%s}</UniqueIdentifier>", os.uuid(filter))
+ filtersfile:leave("</Filter>")
+ exists[filter] = true
+ end
+ filter = path.directory(filter)
end
end
filtersfile:leave("</ItemGroup>")