Alexander, thanks for your explanation. I think we are introducing fake dependencies in the way we include directories. We will have to look into this. I was not questioning cmake, for me it is clear that the problem is on our side. I also think we are abusing the configure_file comamnd using it to copy files instead of introducing some real dependencies. Some cleanup is needed.... Best,
Federico Carminati CERN-PH 1211 Geneva 23 Switzerland Tel: +41 22 76 74959 Fax: +41 22 76 68505 Mobile: +41 76 487 4843 On 17 Feb 2011, at 18:12, Alexander Neundorf wrote: > On Thursday 17 February 2011, Dominik Szczerba wrote: >> I am also sometimes surprised by the radius of needed re-compilation >> in my complex project... I think CMake tries to be on the safe side >> and just regenerates everything that might have been affected. > > From the experiences in KDE and at work, I haven't seen anything being > unnecessarily being recompiled for a long time (I think the last time I saw > something unnecessary being built again was in summer 2006). > > When a include dir changes, everything below it will be rebuilt. The same for > anything else which changes the compile flags. > If only your link command changes, the stuff will only be linked again. > > CMake takes great care to ensure only the necessary stuff will be rebuilt: it > uses copy-if-changed semantics for creating the Makefiles, the Makefiles are > split in parts in such a way that as mentioned above, if only linking has > changed, then there are separate files which contain only the linking > commands, etc. > > Most probably you really have the dependencies which cause a rebuild. > > Or maybe something is wrong with your (networked ?) filesystem and the > timestamps. I have seen that, unncessary recompiles on a network filesystem, > which was most probably caused by filesystem issues. > > Alex _______________________________________________ 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
