From f26009dde6b152f1d32e676202c8982ec409938a Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 15 Nov 2017 10:49:43 -0500 Subject: VS: Order .vcxproj.filters files deterministically Sort source groups by name rather than arbitrary pointer values. Fixes: #17446 --- Source/cmVisualStudio10TargetGenerator.cxx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index b2ac932..caeeeb9 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -1469,9 +1469,12 @@ void cmVisualStudio10TargetGenerator::WriteGroups() } this->WriteString("\n", 1); - for (std::set::iterator g = groupsUsed.begin(); - g != groupsUsed.end(); ++g) { - cmSourceGroup* sg = *g; + std::vector groupsVec(groupsUsed.begin(), groupsUsed.end()); + std::sort(groupsVec.begin(), groupsVec.end(), + [](cmSourceGroup* l, cmSourceGroup* r) { + return l->GetFullName() < r->GetFullName(); + }); + for (cmSourceGroup* sg : groupsVec) { std::string const& name = sg->GetFullName(); if (!name.empty()) { this->WriteString("