From b5bdf2cb0ae3bf3e655b76065050763b092d32f7 Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Tue, 7 Sep 2004 16:55:25 -0400 Subject: ENH: add better error reporting for file open failures --- Source/cmCacheManager.cxx | 3 ++- Source/cmDumpDocumentation.cxx | 4 +++- Source/cmEnableTestingCommand.cxx | 1 + Source/cmExportLibraryDependencies.cxx | 1 + Source/cmGlobalCodeWarriorGenerator.cxx | 1 + Source/cmGlobalVisualStudio6Generator.cxx | 1 + Source/cmGlobalVisualStudio7Generator.cxx | 1 + Source/cmLocalUnixMakefileGenerator.cxx | 1 + Source/cmLocalVisualStudio6Generator.cxx | 1 + Source/cmMakefile.cxx | 1 + Source/cmTryCompileCommand.cxx | 1 + Source/cmUseMangledMesaCommand.cxx | 1 + Source/cmVTKWrapPythonCommand.cxx | 1 + Source/cmVTKWrapTclCommand.cxx | 1 + 14 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Source/cmCacheManager.cxx b/Source/cmCacheManager.cxx index c48d485..d441768 100644 --- a/Source/cmCacheManager.cxx +++ b/Source/cmCacheManager.cxx @@ -327,9 +327,10 @@ bool cmCacheManager::SaveCache(const char* path) tempFile += ".tmp"; std::ofstream fout(tempFile.c_str()); if(!fout) - { + { cmSystemTools::Error("Unable to open cache file for save. ", cacheFile.c_str()); + cmSystemTools::ReportLastSystemError(""); return false; } // before writting the cache, update the version numbers diff --git a/Source/cmDumpDocumentation.cxx b/Source/cmDumpDocumentation.cxx index 0155ac2..9bfc9fc 100644 --- a/Source/cmDumpDocumentation.cxx +++ b/Source/cmDumpDocumentation.cxx @@ -60,7 +60,8 @@ int DumpHTML(const char* outname) std::ofstream fout(outname); if(!fout) { - std::cerr << "failed to open output file: " << outname << "\n"; + std::cerr << "failed to open output file: " << outname << "\n"; + cmSystemTools::ReportLastSystemError(""); return -1; } @@ -104,6 +105,7 @@ int DumpForCoverage(const char* outname) if(!fout) { std::cerr << "failed to open output file: " << outname << "\n"; + cmSystemTools::ReportLastSystemError(""); return -1; } return DumpForCoverageToStream(fout); diff --git a/Source/cmEnableTestingCommand.cxx b/Source/cmEnableTestingCommand.cxx index 05a6545..75adee3 100644 --- a/Source/cmEnableTestingCommand.cxx +++ b/Source/cmEnableTestingCommand.cxx @@ -39,6 +39,7 @@ void cmEnableTestingCommand::FinalPass() if (!fout) { cmSystemTools::Error("Error Writing ", fname.c_str()); + cmSystemTools::ReportLastSystemError(""); return; } diff --git a/Source/cmExportLibraryDependencies.cxx b/Source/cmExportLibraryDependencies.cxx index c8b2169..364bc28 100644 --- a/Source/cmExportLibraryDependencies.cxx +++ b/Source/cmExportLibraryDependencies.cxx @@ -82,6 +82,7 @@ void cmExportLibraryDependenciesCommand::FinalPass() if (!fout) { cmSystemTools::Error("Error Writing ", fname.c_str()); + cmSystemTools::ReportLastSystemError(""); return; } cmake* cm = m_Makefile->GetCMakeInstance(); diff --git a/Source/cmGlobalCodeWarriorGenerator.cxx b/Source/cmGlobalCodeWarriorGenerator.cxx index ba7245f..9db7e54 100644 --- a/Source/cmGlobalCodeWarriorGenerator.cxx +++ b/Source/cmGlobalCodeWarriorGenerator.cxx @@ -94,6 +94,7 @@ void cmGlobalCodeWarriorGenerator::OutputProject() { cmSystemTools::Error("Error can not open project file for write: " ,fname.c_str()); + cmSystemTools::ReportLastSystemError(""); return; } this->WriteProject(fout); diff --git a/Source/cmGlobalVisualStudio6Generator.cxx b/Source/cmGlobalVisualStudio6Generator.cxx index a85ea61..e40e77d 100644 --- a/Source/cmGlobalVisualStudio6Generator.cxx +++ b/Source/cmGlobalVisualStudio6Generator.cxx @@ -364,6 +364,7 @@ void cmGlobalVisualStudio6Generator::OutputDSWFile(cmLocalGenerator* root, { cmSystemTools::Error("Error can not open DSW file for write: ", fname.c_str()); + cmSystemTools::ReportLastSystemError(""); return; } this->WriteDSWFile(fout, root, generators); diff --git a/Source/cmGlobalVisualStudio7Generator.cxx b/Source/cmGlobalVisualStudio7Generator.cxx index 26f16db..8b80ee1 100644 --- a/Source/cmGlobalVisualStudio7Generator.cxx +++ b/Source/cmGlobalVisualStudio7Generator.cxx @@ -291,6 +291,7 @@ void cmGlobalVisualStudio7Generator::OutputSLNFile(cmLocalGenerator* root, { cmSystemTools::Error("Error can not open DSW file for write: ", fname.c_str()); + cmSystemTools::ReportLastSystemError(""); return; } this->WriteSLNFile(fout.GetStream(), root, generators); diff --git a/Source/cmLocalUnixMakefileGenerator.cxx b/Source/cmLocalUnixMakefileGenerator.cxx index e5092fe..5d6fc87 100644 --- a/Source/cmLocalUnixMakefileGenerator.cxx +++ b/Source/cmLocalUnixMakefileGenerator.cxx @@ -192,6 +192,7 @@ void cmLocalUnixMakefileGenerator::OutputMakefile(const char* file, if(!fout) { cmSystemTools::Error("Error can not open for write: ", file); + cmSystemTools::ReportLastSystemError(""); return; } fout << "# CMAKE generated Makefile, DO NOT EDIT!\n" diff --git a/Source/cmLocalVisualStudio6Generator.cxx b/Source/cmLocalVisualStudio6Generator.cxx index 0febe1b..beb5889 100644 --- a/Source/cmLocalVisualStudio6Generator.cxx +++ b/Source/cmLocalVisualStudio6Generator.cxx @@ -149,6 +149,7 @@ void cmLocalVisualStudio6Generator::CreateSingleDSP(const char *lname, cmTarget if(!fout) { cmSystemTools::Error("Error Writing ", fname.c_str()); + cmSystemTools::ReportLastSystemError(""); } this->WriteDSPFile(fout,lname,target); fout.close(); diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 0d7c293..f4c862b 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -2396,6 +2396,7 @@ int cmMakefile::ConfigureFile(const char* infile, const char* outfile, cmSystemTools::Error( "Could not open file for write in copy operation ", tempOutputFile.c_str()); + cmSystemTools::ReportLastSystemError(""); return 0; } std::ifstream fin(sinfile.c_str()); diff --git a/Source/cmTryCompileCommand.cxx b/Source/cmTryCompileCommand.cxx index e20ad7e..55ba900 100644 --- a/Source/cmTryCompileCommand.cxx +++ b/Source/cmTryCompileCommand.cxx @@ -141,6 +141,7 @@ int cmTryCompileCommand::CoreTryCompileCode( { cmSystemTools::Error("Failed to create CMakeList file for ", outFileName.c_str()); + cmSystemTools::ReportLastSystemError(""); return -1; } diff --git a/Source/cmUseMangledMesaCommand.cxx b/Source/cmUseMangledMesaCommand.cxx index 9556073..789ff0f 100644 --- a/Source/cmUseMangledMesaCommand.cxx +++ b/Source/cmUseMangledMesaCommand.cxx @@ -80,6 +80,7 @@ CopyAndFullPathMesaHeader(const char* source, { cmSystemTools::Error("Could not open file for write in copy operation: ", tempOutputFile.c_str(), outdir); + cmSystemTools::ReportLastSystemError(""); return; } std::ifstream fin(source); diff --git a/Source/cmVTKWrapPythonCommand.cxx b/Source/cmVTKWrapPythonCommand.cxx index cef310f..3bde306 100644 --- a/Source/cmVTKWrapPythonCommand.cxx +++ b/Source/cmVTKWrapPythonCommand.cxx @@ -171,6 +171,7 @@ bool cmVTKWrapPythonCommand::WriteInit(const char *kitName, FILE *fout = fopen(tempOutputFile.c_str(),"w"); if (!fout) { + cmSystemTools::ReportLastSystemError("cmVTKWrapPythonCommand error:"); return false; } diff --git a/Source/cmVTKWrapTclCommand.cxx b/Source/cmVTKWrapTclCommand.cxx index 56503fd..b1e4d1a 100644 --- a/Source/cmVTKWrapTclCommand.cxx +++ b/Source/cmVTKWrapTclCommand.cxx @@ -219,6 +219,7 @@ bool cmVTKWrapTclCommand::WriteInit(const char *kitName, if (!fout) { cmSystemTools::Error("Failed to open TclInit file for ", tempOutputFile.c_str()); + cmSystemTools::ReportLastSystemError(""); return false; } -- cgit v0.12