diff options
| author | ruki <[email protected]> | 2016-09-16 22:27:55 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2016-09-16 22:27:55 +0800 |
| commit | b70792995b5a0e4253ca83f09efa565c72a0cb88 (patch) | |
| tree | 869639d552577181773289d4645dbf5d8b78ecf3 | |
| parent | 388f45327004d82fa2261f680a2b89a4620609a4 (diff) | |
fix vs201x filters bug
| -rw-r--r-- | CHANGELOG.md | 3 | ||||
| -rw-r--r-- | xmake/plugins/project/vstudio/impl/vs201x_vcxproj_filters.lua | 15 |
2 files changed, 11 insertions, 7 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 27773fc62..12e5cbd95 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ ### Changes * Improve ipairs and pairs interfaces and support filter +* Add filters for generating vs201x project ### Bugs fixed @@ -128,7 +129,6 @@ * Support switch static and share library * Add -j/--jobs argument for supporting multi-jobs - ### Changes * Improve `add_files` api and support to add *.o/obj/a/lib files for merging static library and object files @@ -168,6 +168,7 @@ ### �Ľ� * ��ǿipairs��pairs�ӿڣ�֧�ֹ�����ģʽ���ű����� +* Ϊvs201x�������������ļ�filter ### Bugs�� 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>")
|
