Преглед на файлове

Ninja: mark rules/build file streams failed if error occurred (#13067, #13105)

This causes cmGeneratedFileStream to delete the temporary files,
rather than overwriting the (working) existing files.
Peter Collingbourne преди 13 години
родител
ревизия
b94514f020
променени са 1 файла, в които са добавени 5 реда и са изтрити 0 реда
  1. 5 0
      Source/cmGlobalNinjaGenerator.cxx

+ 5 - 0
Source/cmGlobalNinjaGenerator.cxx

@@ -385,6 +385,11 @@ void cmGlobalNinjaGenerator::Generate()
   this->WriteTargetAliases(*this->BuildFileStream);
   this->WriteBuiltinTargets(*this->BuildFileStream);
 
+  if (cmSystemTools::GetErrorOccuredFlag()) {
+    this->RulesFileStream->setstate(std::ios_base::failbit);
+    this->BuildFileStream->setstate(std::ios_base::failbit);
+  }
+
   this->CloseRulesFileStream();
   this->CloseBuildFileStream();
 }