> Have you checked the Makefiles which CMake creates > to see if there are any surprising dependencies > which could be causing the large extent of the recompile.
Do you mean CMakeFiles/Xxx.dir/depend.cmake ? Yes, I checked these -- nothing interesting here. Actually I've just figured out the problem. Someone had added some CMake code that adds a definition setting the svn version number (using add_definitions). This gets called from the top level. So every svn update results in a new "-DXxxx", and therefore every source file is re-compiled. Alex > Alex Brooks wrote: > > Thanks for the quick responses. > > Comments inline: > > > > Eric: > >> May be svn is the culprit. > >> > >> Did you have a look at the timestamp of the file/directory enclosing > >> (and up) the > >> changed CMakeLists.txt after the svn update? > >> > >> May be a single change inside a directory change the timestamp > >> of a set of file? > > > > When an svn update pulls in a change to a CMakeLists.txt file, the > > following > > > > timestamps are updated: > > 1. the timestamp of the CMakeLists.txt file itself, and > > 2. the timestamp of the directory. > > > > If I manually do a 'touch CMakeLists.txt', it changes the timestamp of > > the file itself but not the directory. > > > > I don't know why this might cause a complete rebuild. > > If I manually do 'touch .; touch CMakeLists.txt; make' somewhere in the > > source tree, it doesn't force a rebuild. > > > >> Another option may be that this particular CMakeLists.txt is generating > >> (using configure_file) some file that is [indirectly] included by many > >> other? > > > > I've looked for this kind of thing. Files which do not depend on any > > dynamically-generated files also get rebuilt. > > > >> May be you can have look at the dependencies in > >> CMakeFiles/Makefile.cmake > > > > I don't have this file, but I have CMakeFiles/Xxx.dir/depend.cmake. > > Here's a sample: > > > > # CMAKE generated file: DO NOT EDIT! > > # Generated by "Unix Makefiles" Generator, CMake Version 2.8 > > > > orca/src/hydrolibs/hydrodll/CMakeFiles/HydroDll.dir/dll.cpp.o: > > orca/src/hydrolibs/hydrodll/dll.cpp > > orca/src/hydrolibs/hydrodll/CMakeFiles/HydroDll.dir/dll.cpp.o: > > orca/src/hydrolibs/hydrodll/dll.h > > orca/src/hydrolibs/hydrodll/CMakeFiles/HydroDll.dir/dll.cpp.o: > > orca/src/hydrolibs/hydrodll/exceptions.h > > > > In this case, when a rebuild is forced I always see dll.cpp.o get rebuilt > > (despite no changes to dll.h/dll.cpp/exceptions.h) > > All of these files are written by hand, not are generated using > > configure_file. > > > > Marcel: > >> Or do you use keyword expansion in your CMakeLists.txt file. Keywords, > >> like $Id$, $Author$, etc. are a relict from CVS, but still supported by > >> Subversion, though you have to explicitly activate it using properties. > > > > No, I don't use anything like this. If I diff the files mentioned in > > e.g. the "hydrodll" directory above, there are no changes (and the > > timestamps haven't moved). But an svn update to an unrelated directory > > causes a rebuild. > > > > > > Any other ideas? > > _______________________________________________ > > 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 > > _______________________________________________ > 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 -- ------------------------------ Dr Alex Brooks Marathon Targets Pty Ltd National Innovation Centre 4 Cornwallis Street Eveleigh, NSW 2015 Sydney, Australia Ph: +61 2 9209 4021 Web: www.marathon-targets.com ------------------------------ _______________________________________________ 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