On 2008-02-06 21:05-0500 Bill Hoffman wrote:

Could we have a cmake command-line option to evaluate/diagnose the complete list of file and target dependencies as understood by cmake? You could start
with a print out of complete target dependency chains and file dependency
chains as cmake understands them.  As part of that printout it would be
useful to highlight files or targets that are built with few dependencies
since that might be a sign of missing dependencies.  And also highlight
chains of file depends that include files that are part of other chains of
file depends. You could put in some error analysis as well (in case two
targets which do not target-depend on each other file-depend on the same
file, for example.)

Anyhow, as I went through this dependency hell for PLplot I kept wishing for
such a diagnostic tool, and I think it would be useful for others as well
that are dealing with projects like PLplot with complex dependency chains
spread over quite a few different directories.

What do you think?


You could try this:

cmake --graphviz=[file]           = Generate graphviz of dependencies.

It will only show the target level stuff. It would be another project to get the file level depend stuff to show up. The problem is that is done at build
^^^^
time and not a cmake time.

My first interpretation was "that" referred to graphviz, but in fact the
file was produced at cmake time, and it was a simple matter to process it by
hand using the "dot" command-line tool (even though I had never heard of
that tool or graphviz before). "gv" has errors for both the ps and pdf
results, but I think that is because the latest gv is extra careful about
non-standard ps and pdf files.  xpdf could understand the pdf output, but I
have to say the result is black with dependency lines to a frightening
extent. I can send the pdf file to Brad and/or you off-list if either of you
is interested in being frightened by the PLplot dependencies as well.  :-)

Seriously, I am fairly impressed with the graphviz result, and adding in
the file depends would add a lot of value to the result.

If your "that" refers to file depends instead of graphviz, I don't
understand your comment since surely file depend information is available at
cmake time?

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state implementation
for stellar interiors (freeeos.sf.net); PLplot scientific plotting software
package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of
Linux Links project (loll.sf.net); and the Linux Brochure Project
(lbproject.sf.net).
__________________________

Linux-powered Science
__________________________
_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to