#include "DumpInformation.h" #include #include void cmDumpInformationPrintFile(const char* name, FILE* fout) { fprintf(fout, "Avoid ctest truncation of output: CTEST_FULL_OUTPUT\n"); fprintf( fout, "================================================================\n"); struct stat fs; if (stat(name, &fs) != 0) { fprintf(fout, "The file \"%s\" does not exist.\n", name); fflush(fout); return; } FILE* fin = fopen(name, "r"); if (fin) { fprintf( fout, "Contents of \"%s\":\n" "----------------------------------------------------------------\n", name); const int bufferSize = 4096; char buffer[bufferSize]; int n; while ((n = fread(buffer, 1, bufferSize, fin)) > 0) { for (char* c = buffer; c < buffer + n; ++c) { switch (*c) { case '<': fprintf(fout, "<"); break; case '>': fprintf(fout, ">"); break; case '&': fprintf(fout, "&"); break; default: putc(*c, fout); break; } } fflush(fout); } fclose(fin); } else { fprintf(fout, "Error opening \"%s\" for reading.\n", name); fflush(fout); } } int main(int, char*[]) { const char* files[] = { DumpInformation_BINARY_DIR "/SystemInformation.out", DumpInformation_BINARY_DIR "/AllVariables.txt", DumpInformation_BINARY_DIR "/AllCommands.txt", DumpInformation_BINARY_DIR "/AllMacros.txt", DumpInformation_BINARY_DIR "/OtherProperties.txt", DumpInformation_BINARY_DIR "/../../Source/cmConfigure.h", DumpInformation_BINARY_DIR "/../../CMakeCache.txt", DumpInformation_BINARY_DIR "/../../Bootstrap.cmk/cmake_bootstrap.log", DumpInformation_BINARY_DIR "/../../Source/cmsys/Configure.hxx", DumpInformation_BINARY_DIR "/../../Source/cmsys/Configure.h", 0 }; const char** f; for (f = files; *f; ++f) { cmDumpInformationPrintFile(*f, stdout); } return 0; }