[CMake] Parallel builds do not work correctly when using "cmake -E copy" to copy files

Alan W. Irwin irwin at beluga.phys.uvic.ca
Wed Feb 6 22:29:15 EST 2008

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 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

Linux-powered Science

More information about the CMake mailing list