On Thu, Dec 17, 2009 at 3:20 AM, Michael Wild <them...@gmail.com> wrote:
> > On 16. Dec, 2009, at 20:35 , Michael Jackson wrote: > > > I am intrigued by the "ExternalProject" feature of CMake 2.8. One > question that I have after reading through the Oct 09 "Kitware Source" is > this. If I do a "make clean" or "rebuild" are all the "ExternalProjects" > also cleaned/rebuilt? I could make an argument both ways but I was curious > what the default was? > > > > One of my projects depends on HDF5, Tiff, Expat and Boost (And Qt > Eventually). Writing directions to get everything downloaded and built is > getting to be a pain. Would be simpler to have all that done for the user. > > > > Thanks for any comments > > _________________________________________________________ > > Mike Jackson mike.jack...@bluequartz.net > > BlueQuartz Software www.bluequartz.net > > Principal Software Engineer Dayton, Ohio > > > > "make clean" behaves a bit strange for me... It seems to remove some of the > stamp files, but does not actually perform a "clean" on the external > project, or wipe the extracted sources. For me, this is a bit of a problem, > since the PATCH_COMMAND will try to re-apply a patch, which of course will > fail. Not sure how to teach CMake to not re-patch a source tree... Perhaps > wrap the whole thing in a apply_patch.cmake script which creates its own > stamp in the external source tree and only applies the patch if that stamp > does not exist... > > Michael Wild's observations are correct. The "make clean" of the outer project is going to wipe all the stamp files causing all of the steps to re-run again, including downloads and checkouts. Since the patch command is empty by default and 'patch' is not readily available on Windows, the patching stuff is less well tested than the rest of the steps. I guess I would be inclined to say that an outer/main-project "make clean" ought to default to cleaning the inner/nested/external projects as well... but it's not clear to me that there's a reasonable way to implement that quickly and easily. It's certainly worthy of a feature request and some discussion. And whatever the default behavior is, it should probably be controllable by one or more new arguments to the ExternalProject_Add function. Let me know if you have further ideas and suggestions. Thanks, David Cole
_______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake