[CMake] Need help with ExternalProject_Add file dependencies

Alan W. Irwin irwin at beluga.phys.uvic.ca
Thu May 30 16:04:05 EDT 2013


On 2013-05-30 04:16-0700 Alan W. Irwin wrote:

> On 2013-05-30 02:22-0700 Alan W. Irwin wrote:
>
>> Why do two build steps (6 and 7) have to be done to satisfy the file
>> depends after the touch?  I must be doing something wrong with the
>> file depends above, but I cannot see what it is.
>
> Actually, this bad behaviour was due to a long-standing (at least from 2.8.0) 
> bug in CMake -E touch
> which truncates the time to the nearest second for the file it creates
> rather than using an accurate time.  So the time stamp was being
> truncated to a time that was less than the file creation date of
> the copied file with the result that build commands were being
> done twice.
>
> More on the cmake-devel list with a different subject line.

It turns out this CMake -E touch bug has been reported before
http://www.cmake.org/Bug/view.php?id=14020, and the bugfix is close to
being finished (patch available for Unix) but currently backlogged. I
hope this bugfix can be finalized soon because of the
ExternalProject_Add implications.

Finally, I am glad this screwy file dependency issue I discovered with
ExternalProject_Add is completely explained by this bug and is not due
to some error in the CMake logic I have implemented in my
ExternalProject_Add-based "build_projects" project.

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); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); 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
__________________________


More information about the CMake mailing list