소스 검색

VS: Order .vcxproj.filters files deterministically

Sort source groups by name rather than arbitrary pointer values.

Fixes: #17446
Brad King 8 년 전
부모
커밋
f26009dde6
1개의 변경된 파일6개의 추가작업 그리고 3개의 파일을 삭제
  1. 6 3
      Source/cmVisualStudio10TargetGenerator.cxx

+ 6 - 3
Source/cmVisualStudio10TargetGenerator.cxx

@@ -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();
-       g != groupsUsed.end(); ++g) {
-    cmSourceGroup* sg = *g;
+  std::vector<cmSourceGroup*> 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();
     std::string const& name = sg->GetFullName();
     if (!name.empty()) {
     if (!name.empty()) {
       this->WriteString("<Filter Include=\"", 2);
       this->WriteString("<Filter Include=\"", 2);