VS: Order .vcxproj.filters files deterministically

Sort source groups by name rather than arbitrary pointer values.

Fixes: #17446
This commit is contained in:
Brad King
2017-11-15 10:49:43 -05:00
parent c871446abc
commit f26009dde6
+6 -3
View File
@@ -1469,9 +1469,12 @@ void cmVisualStudio10TargetGenerator::WriteGroups()
} }
this->WriteString("<ItemGroup>\n", 1); this->WriteString("<ItemGroup>\n", 1);
for (std::set<cmSourceGroup*>::iterator g = groupsUsed.begin(); std::vector<cmSourceGroup*> groupsVec(groupsUsed.begin(), groupsUsed.end());
g != groupsUsed.end(); ++g) { std::sort(groupsVec.begin(), groupsVec.end(),
cmSourceGroup* sg = *g; [](cmSourceGroup* l, cmSourceGroup* r) {
return l->GetFullName() < r->GetFullName();
});
for (cmSourceGroup* sg : groupsVec) {
std::string const& name = sg->GetFullName(); std::string const& name = sg->GetFullName();
if (!name.empty()) { if (!name.empty()) {
this->WriteString("<Filter Include=\"", 2); this->WriteString("<Filter Include=\"", 2);