From b94514f02018d566abc0156d5a729ebe9ee49105 Mon Sep 17 00:00:00 2001 From: Peter Collingbourne Date: Wed, 16 May 2012 23:57:09 +0100 Subject: [PATCH] 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. --- Source/cmGlobalNinjaGenerator.cxx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx index 9cbd50233..5f52e1d2e 100644 --- a/Source/cmGlobalNinjaGenerator.cxx +++ b/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(); }