Bladeren bron

cmGlobalGenerator: Process targets in a stable order

`cmMakefile::Targets` is meant for efficient lookup but does not
have a stable order.  Use `cmMakefile::OrderedTargets` instead.
NAKAMURA Takumi 4 jaren geleden
bovenliggende
commit
9e9ab61e2f
2 gewijzigde bestanden met toevoegingen van 3 en 4 verwijderingen
  1. 2 3
      Source/cmGlobalGenerator.cxx
  2. 1 1
      Tests/RunCMake/VS10Project/VsDpiAwareBadParam-stderr.txt

+ 2 - 3
Source/cmGlobalGenerator.cxx

@@ -1781,9 +1781,8 @@ void cmGlobalGenerator::CreateGeneratorTargets(
   std::map<cmTarget*, cmGeneratorTarget*> const& importedMap)
 {
   if (targetTypes == AllTargets) {
-    for (auto& target : mf->GetTargets()) {
-      cmTarget* t = &target.second;
-      lg->AddGeneratorTarget(cm::make_unique<cmGeneratorTarget>(t, lg));
+    for (cmTarget* target : mf->GetOrderedTargets()) {
+      lg->AddGeneratorTarget(cm::make_unique<cmGeneratorTarget>(target, lg));
     }
   }
 

+ 1 - 1
Tests/RunCMake/VS10Project/VsDpiAwareBadParam-stderr.txt

@@ -1,3 +1,3 @@
-CMake Error: Bad parameter for VS_DPI_AWARE: Bar
 CMake Error: Bad parameter for VS_DPI_AWARE: Foo
+CMake Error: Bad parameter for VS_DPI_AWARE: Bar
 CMake Generate step failed.  Build files cannot be regenerated correctly.