[CMake] CMake 2.2 dependency check skip

Moreland, Kenneth kmorel at sandia.gov
Wed Oct 19 15:46:54 EDT 2005


I should be clearer, too.  It is the first and second parts that I want to skip.
 
I agree that skipping the third part makes no sense whatsoever.  I also agree that by default the second part, and probably the first part, should be included by default every time you run make.  Is skipping the first part new to CMake 2.2?  I could have sworn that with CMake 2.0 I was able to change CMakeLists.txt in a subdirectory and see the effect by running make there.
 
Anyway, 90% of the time when I run make, I have made just a little change to a source file and I want to refresh the binaries.  Most of the time I know that the dependencies have not changed so I don't want to take the time to have my build system reconfigure them.
 
Of course, the problems you bring up, Ken, are all valid.  This argument of what dependency checks should be run could quickly turn into a religious war.  That is why I'm all for your suggestion of the all_nocheck/all_nodepend targets.
 
-Ken

________________________________

From: Ken Martin [mailto:ken.martin at kitware.com]
Sent: Wed 10/19/2005 11:55 AM
To: 'David Cole'; Moreland, Kenneth
Cc: cmake at cmake.org
Subject: RE: [CMake] CMake 2.2 dependency check skip



> > The Makefile2 file is only at the top level.  I would really like to
> > skip the dependency check when compiling one of the subdirectories
> > (e.g. ParaView/Server/Filters).

OK, I should be clearer here. There are three parts to dependency checking.
There is the check_build_system step that is done to verify that files have
not been removed or that key files have not been changed. Basically it
checks to see if cmake needs to be rerun or if dependencies need to be
regenerated. This step is skipped when doing a make from a subdirectory. The
second piece is actually computing any out of date dependencies, this cannot
be skipped currently to my knowledge. The third step is make's evaluation of
dependencies to determine what files should be recompiled. This also cannot
be skipped.

So in the end the first step is always skipped for subdirs which is a
problem if you are modifying configured files, cmakelist files, or removing
files. The third step really makes no sense to skip ever. The second step,
well I'm a big fan of having up to date dependencies so I really dig the
second step. I've seen many people have problems with their program because
they added an ivar to a header file but not all of the object files that use
it were recompiled. (bus error, bad ESP, seg fault). So that is my take and
the current state. In hindsight I almost think we should not skip the first
step even for subdirectories but I'm always open to suggestions. We can
always add all_nocheck all_nodepend targets to the subdir makefiles.
Thoughts?


Ken




-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://public.kitware.com/pipermail/cmake/attachments/20051019/532ea250/attachment.htm


More information about the CMake mailing list