diff options
| author | Bob Jamison <ishmalius@gmail.com> | 2006-06-20 21:23:20 +0000 |
|---|---|---|
| committer | ishmal <ishmal@users.sourceforge.net> | 2006-06-20 21:23:20 +0000 |
| commit | f71b3f4ec93fcc7d6de9738f46113bf76a49c78f (patch) | |
| tree | 038c7084eb75e186181fe5889f7cb3c54af0d75b /src/deptool.cpp | |
| parent | add xml version of ref file (diff) | |
| download | inkscape-f71b3f4ec93fcc7d6de9738f46113bf76a49c78f.tar.gz inkscape-f71b3f4ec93fcc7d6de9738f46113bf76a49c78f.zip | |
add alternate xml output to dep file
(bzr r1248)
Diffstat (limited to 'src/deptool.cpp')
| -rw-r--r-- | src/deptool.cpp | 210 |
1 files changed, 151 insertions, 59 deletions
diff --git a/src/deptool.cpp b/src/deptool.cpp index cf58a7902..a5e4f9058 100644 --- a/src/deptool.cpp +++ b/src/deptool.cpp @@ -282,7 +282,7 @@ private: /** * */ - bool saveDepFile(); + bool saveDepFile(bool doXml); /** * @@ -996,7 +996,7 @@ bool DepTool::run() return false; if (!generateDependencies()) return false; - saveDepFile(); + saveDepFile(false); saveRefFile(true); return true; } @@ -1076,7 +1076,7 @@ bool DepTool::saveFileList() * This is the main product. This file lists the Include directives, * the Object list, and the dependency list. */ -bool DepTool::saveDepFile() +bool DepTool::saveDepFile(bool doXml) { time_t tim; time(&tim); @@ -1086,76 +1086,168 @@ bool DepTool::saveDepFile() { trace("cannot open 'make.dep' for writing"); } - fprintf(f, "########################################################\n"); - fprintf(f, "## File: make.dep\n"); - fprintf(f, "## Generated by DepTool at :%s", ctime(&tim)); - fprintf(f, "########################################################\n"); + if (doXml) + { + fprintf(f, "<?xml version='1.0'?>\n"); + fprintf(f, "<deptool>\n"); + fprintf(f, "\n"); + fprintf(f, "<!--\n"); + fprintf(f, "########################################################\n"); + fprintf(f, "## File: make.dep\n"); + fprintf(f, "## Generated by DepTool at :%s", ctime(&tim)); + fprintf(f, "########################################################\n"); + fprintf(f, "-->\n"); - fprintf(f, "\n\n"); + fprintf(f, "\n\n"); - fprintf(f, "########################################################\n"); - fprintf(f, "## I N C L U D E\n"); - fprintf(f, "########################################################\n"); - fprintf(f, "DEPTOOL_INCLUDE ="); + fprintf(f, "\n"); + fprintf(f, "<!--\n"); + fprintf(f, "########################################################\n"); + fprintf(f, "## I N C L U D E\n"); + fprintf(f, "########################################################\n"); + fprintf(f, "-->\n"); + fprintf(f, "<includes>\n"); - std::vector<String>::iterator inciter; - for (inciter=directories.begin() ; inciter!=directories.end() ; inciter++) - { - fprintf(f, " \\\n"); - String dirname = *inciter; - fprintf(f, "-I%s", dirname.c_str()); - } + std::vector<String>::iterator inciter; + for (inciter=directories.begin() ; inciter!=directories.end() ; inciter++) + { + String dirname = *inciter; + fprintf(f, " <inc name='%s'/>\n", dirname.c_str()); + } - fprintf(f, "\n\n\n"); - fprintf(f, "########################################################\n"); - fprintf(f, "## O B J E C T S\n"); - fprintf(f, "########################################################\n"); - fprintf(f, "DEPTOOL_OBJECTS ="); + fprintf(f, "</includes>\n"); + fprintf(f, "\n\n\n"); + fprintf(f, "<!--\n"); + fprintf(f, "########################################################\n"); + fprintf(f, "## O B J E C T S\n"); + fprintf(f, "########################################################\n"); + fprintf(f, "-->\n"); + fprintf(f, "<objects>\n"); - std::map<String, FileRec *>::iterator oiter; - for (oiter=allFiles.begin() ; oiter!=allFiles.end() ; oiter++) - { - FileRec *frec = oiter->second; - if (frec->type == FileRec::CFILE) + std::map<String, FileRec *>::iterator oiter; + for (oiter=allFiles.begin() ; oiter!=allFiles.end() ; oiter++) { - fprintf(f, " \\\n"); - String fname = frec->path; - if (fname.size()>0) - fname.append("/"); - fname.append(frec->baseName); - fname.append(".o"); - fprintf(f, "%s", fname.c_str()); + FileRec *frec = oiter->second; + if (frec->type == FileRec::CFILE) + { + String fname = frec->path; + if (fname.size()>0) + fname.append("/"); + fname.append(frec->baseName); + fname.append(".o"); + fprintf(f, " <obj name='%s'/>\n", fname.c_str()); + } } - } - fprintf(f, "\n\n\n"); - fprintf(f, "########################################################\n"); - fprintf(f, "## D E P E N D E N C I E S\n"); - fprintf(f, "########################################################\n"); - std::map<String, FileRec *>::iterator iter; - for (iter=depFiles.begin() ; iter!=depFiles.end() ; iter++) + fprintf(f, "</objects>\n"); + fprintf(f, "\n\n\n"); + fprintf(f, "<!--\n"); + fprintf(f, "########################################################\n"); + fprintf(f, "## D E P E N D E N C I E S\n"); + fprintf(f, "########################################################\n"); + fprintf(f, "-->\n"); + fprintf(f, "<dependencies>\n\n"); + std::map<String, FileRec *>::iterator iter; + for (iter=depFiles.begin() ; iter!=depFiles.end() ; iter++) + { + FileRec *frec = iter->second; + if (frec->type == FileRec::OFILE) + { + String fname = iter->first; + fprintf(f, "<file name='%s'>\n", fname.c_str()); + std::map<String, FileRec *>::iterator citer; + for (citer=frec->files.begin() ; citer!=frec->files.end() ; citer++) + { + String cfname = citer->first; + fprintf(f, " <dep name='%s'/>\n", cfname.c_str()); + } + fprintf(f, "</file>\n\n"); + } + } + + fprintf(f, "</dependencies>\n"); + fprintf(f, "\n\n\n"); + fprintf(f, "</deptool>\n"); + fprintf(f, "<!--\n"); + fprintf(f, "########################################################\n"); + fprintf(f, "## E N D\n"); + fprintf(f, "########################################################\n"); + fprintf(f, "-->\n"); + } + else // ######### !XML { - FileRec *frec = iter->second; - if (frec->type == FileRec::OFILE) + fprintf(f, "########################################################\n"); + fprintf(f, "## File: make.dep\n"); + fprintf(f, "## Generated by DepTool at :%s", ctime(&tim)); + fprintf(f, "########################################################\n"); + + fprintf(f, "\n\n"); + + fprintf(f, "########################################################\n"); + fprintf(f, "## I N C L U D E\n"); + fprintf(f, "########################################################\n"); + fprintf(f, "DEPTOOL_INCLUDE ="); + + std::vector<String>::iterator inciter; + for (inciter=directories.begin() ; inciter!=directories.end() ; inciter++) + { + fprintf(f, " \\\n"); + String dirname = *inciter; + fprintf(f, "-I%s", dirname.c_str()); + } + + fprintf(f, "\n\n\n"); + fprintf(f, "########################################################\n"); + fprintf(f, "## O B J E C T S\n"); + fprintf(f, "########################################################\n"); + fprintf(f, "DEPTOOL_OBJECTS ="); + + std::map<String, FileRec *>::iterator oiter; + for (oiter=allFiles.begin() ; oiter!=allFiles.end() ; oiter++) { - String fname = iter->first; - fprintf(f, "%s:", fname.c_str()); - std::map<String, FileRec *>::iterator citer; - for (citer=frec->files.begin() ; citer!=frec->files.end() ; citer++) + FileRec *frec = oiter->second; + if (frec->type == FileRec::CFILE) { - String cfname = citer->first; fprintf(f, " \\\n"); - fprintf(f, "\t%s", cfname.c_str()); + String fname = frec->path; + if (fname.size()>0) + fname.append("/"); + fname.append(frec->baseName); + fname.append(".o"); + fprintf(f, "%s", fname.c_str()); } - fprintf(f, "\n\n\n"); } - } - fprintf(f, "\n\n\n"); - fprintf(f, "########################################################\n"); - fprintf(f, "## E N D\n"); - fprintf(f, "########################################################\n"); + + fprintf(f, "\n\n\n"); + fprintf(f, "########################################################\n"); + fprintf(f, "## D E P E N D E N C I E S\n"); + fprintf(f, "########################################################\n"); + std::map<String, FileRec *>::iterator iter; + for (iter=depFiles.begin() ; iter!=depFiles.end() ; iter++) + { + FileRec *frec = iter->second; + if (frec->type == FileRec::OFILE) + { + String fname = iter->first; + fprintf(f, "%s:", fname.c_str()); + std::map<String, FileRec *>::iterator citer; + for (citer=frec->files.begin() ; citer!=frec->files.end() ; citer++) + { + String cfname = citer->first; + fprintf(f, " \\\n"); + fprintf(f, "\t%s", cfname.c_str()); + } + fprintf(f, "\n\n\n"); + } + } + + fprintf(f, "\n\n\n"); + fprintf(f, "########################################################\n"); + fprintf(f, "## E N D\n"); + fprintf(f, "########################################################\n"); + } fclose(f); @@ -1188,7 +1280,7 @@ bool DepTool::saveRefFile(bool doXml) fprintf(f, "## Note: The metric is the 'distance' of inclusion from\n"); fprintf(f, "## the given file.\n"); fprintf(f, "########################################################\n"); - fprintf(f, "--!>\n"); + fprintf(f, "-->\n"); fprintf(f, "\n\n"); @@ -1216,7 +1308,7 @@ bool DepTool::saveRefFile(bool doXml) fprintf(f, "########################################################\n"); fprintf(f, "## E N D\n"); fprintf(f, "########################################################\n"); - fprintf(f, "--!>\n"); + fprintf(f, "-->\n"); } else //######### not xml |
