ソースを参照

Merge topic 'multi-ninja-no-cleandead'

6cc74b6140 cmGlobalNinjaGenerator: avoid cleandead and recompact in Ninja-Multi

Acked-by: Kitware Robot <[email protected]>
Merge-request: !4261
Brad King 5 年 前
コミット
89a93348d5
1 ファイル変更11 行追加2 行削除
  1. 11 2
      Source/cmGlobalNinjaGenerator.cxx

+ 11 - 2
Source/cmGlobalNinjaGenerator.cxx

@@ -549,10 +549,19 @@ void cmGlobalNinjaGenerator::Generate()
     }
   };
 
-  if (this->NinjaSupportsCleanDeadTool) {
+  // The `cleandead` tool needs to know about all outputs in the build we just
+  // wrote out. Ninja-Multi doesn't have a single `build.ninja` we can use that
+  // is the union of all generated configurations, so we can't run it reliably
+  // in that case.
+  if (this->NinjaSupportsCleanDeadTool && !this->IsMultiConfig()) {
     run_ninja_tool({ "cleandead" });
   }
-  if (this->NinjaSupportsUnconditionalRecompactTool) {
+  // The `recompact` tool loads the manifest. As above, we don't have a single
+  // `build.ninja` to load for this in Ninja-Multi. This may be relaxed in the
+  // future pending further investigation into how Ninja works upstream
+  // (ninja#1721).
+  if (this->NinjaSupportsUnconditionalRecompactTool &&
+      !this->IsMultiConfig()) {
     run_ninja_tool({ "recompact" });
   }
   if (this->NinjaSupportsRestatTool) {