DumpInformation.cxx 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #include "DumpInformation.h"
  2. #include <stdio.h>
  3. #include <sys/stat.h>
  4. void cmDumpInformationPrintFile(const char* name, FILE* fout)
  5. {
  6. fprintf(fout,
  7. "================================================================\n");
  8. struct stat fs;
  9. if(stat(name, &fs) != 0)
  10. {
  11. fprintf(fout, "The file \"%s\" does not exist.\n", name);
  12. fflush(fout);
  13. return;
  14. }
  15. FILE* fin = fopen(name, "r");
  16. if(fin)
  17. {
  18. fprintf(fout,
  19. "Contents of \"%s\":\n"
  20. "----------------------------------------------------------------\n",
  21. name);
  22. const int bufferSize = 4096;
  23. char buffer[bufferSize];
  24. int n;
  25. while((n = fread(buffer, 1, bufferSize, fin)) > 0)
  26. {
  27. for(char* c = buffer; c < buffer+n; ++c)
  28. {
  29. switch(*c)
  30. {
  31. case '<': fprintf(fout, "&lt;"); break;
  32. case '>': fprintf(fout, "&gt;"); break;
  33. case '&': fprintf(fout, "&amp;"); break;
  34. default: putc(*c, fout); break;
  35. }
  36. }
  37. fflush(fout);
  38. }
  39. fclose(fin);
  40. }
  41. else
  42. {
  43. fprintf(fout, "Error opening \"%s\" for reading.\n", name);
  44. fflush(fout);
  45. }
  46. }
  47. int main(int,char *[])
  48. {
  49. const char* files[] =
  50. {
  51. DumpInformation_BINARY_DIR "/SystemInformation.out",
  52. DumpInformation_BINARY_DIR "/AllVariables.txt",
  53. DumpInformation_BINARY_DIR "/AllCommands.txt",
  54. DumpInformation_BINARY_DIR "/AllMacros.txt",
  55. DumpInformation_BINARY_DIR "/OtherProperties.txt",
  56. DumpInformation_BINARY_DIR "/../../Source/cmConfigure.h",
  57. DumpInformation_BINARY_DIR "/../../CMakeCache.txt",
  58. DumpInformation_BINARY_DIR "/../../CMakeOutput.log",
  59. DumpInformation_BINARY_DIR "/../../CMakeError.log",
  60. DumpInformation_BINARY_DIR "/../../Bootstrap.cmk/cmake_bootstrap.log",
  61. DumpInformation_BINARY_DIR "/../../Source/cmsys/Configure.hxx",
  62. DumpInformation_BINARY_DIR "/../../Source/cmsys/Configure.h",
  63. 0
  64. };
  65. const char** f;
  66. for(f = files; *f; ++f)
  67. {
  68. cmDumpInformationPrintFile(*f, stdout);
  69. }
  70. return 0;
  71. }