Hi, attached you can find a dependency graph for the khtmlpart in kdelibs.
This graph was created using dot from a dot-file generated by cmake using the --graphviz option. This feature was a bit buggy, e.g. it ignored targets which didn't link to anything. So I spent some time on it and now it works better. You can see what I have so far here in the ImprovedDotSupport-branch : http://cmake.org/gitweb?p=stage/cmake.git;a=shortlog;h=refs/heads/ImprovedDotSupport The old code produced one dot-file containing everything. This is not usable for big projects, i.e. I was not able to zoom into the generated image or pdf with any application, they all crashed, because it was too big. Also, there was just too much in it for one graph (for kdelibs it's around 1000 nodes). So now, if you say --graphviz=kdelibs.dot, cmake generates the all-in-one file kdelibs.dot, and additionally for each target a kdelibs.dot.<targetname> file, which contains only the dependencies of this target. $ cd builddir/ buildir/$ cmake . --graphviz=kdelibs.dot ... Writing kdelibs.dot.testkhtml... Writing kdelibs.dot.testkhtml_static... Writing kdelibs.dot.testkjs... Writing kdelibs.dot.testkjs_static... Writing kdelibs.dot.testmodelqueuedconnections... Writing kdelibs-2.8.3/kdelibs.dot.testqtargs... Writing kdelibs.dot.testserver... Writing kdelibs.dot.threadweaver... Writing kdelibs.dot.undomanager_test... Writing kdelibs.dot.valuetest... Writing kdelibs.dot... -- Generating done builddir/$ dot kdelibs.dot.kfile -Tpdf -okdelibs.dot.kfile.pdf Is that ok or should there be a switch whether I want all the separate dot-files ? Or should this be configurable via the file CMakeGraphVizOptions.cmake, which can already now be used e.g. to specify targets which should be ignored ? I could also add options to CMakeGraphVizOptions.cmake so that you could specify a include/exclude regex, or that you can say it should only generate graphs for LIBRARY targets, etc. But OTOH, you could simply ignore the dot-files you're not interested in... The code to do this is now around 350 lines (6 functions) in cmake.cxx, I guess I should move this to a separate class/file. Comments ? Alex
kdelibs.dot.khtmlpart.pdf
Description: Adobe PDF document
_______________________________________________ cmake-developers mailing list [email protected] http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
