<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7232.77">
<TITLE>RE: [CMake] CMake 2.2 dependency check skip</TITLE>
</HEAD>
<BODY>
<DIV id=idOWAReplyText26637 dir=ltr>
<DIV dir=ltr><FONT face=Arial color=#000000 size=2>I should be clearer,
too. It is the first and second parts that I want to skip.</FONT></DIV>
<DIV dir=ltr><FONT face=Arial size=2></FONT> </DIV>
<DIV dir=ltr><FONT face=Arial size=2>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.</FONT></DIV>
<DIV dir=ltr><FONT face=Arial size=2></FONT> </DIV>
<DIV dir=ltr><FONT face=Arial size=2>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.</FONT></DIV>
<DIV dir=ltr><FONT face=Arial size=2></FONT> </DIV>
<DIV dir=ltr><FONT face=Arial size=2>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.</FONT></DIV>
<DIV dir=ltr><FONT face=Arial size=2></FONT> </DIV>
<DIV dir=ltr><FONT face=Arial size=2>-Ken</FONT></DIV></DIV>
<DIV dir=ltr><BR>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> Ken Martin
[mailto:ken.martin@kitware.com]<BR><B>Sent:</B> Wed 10/19/2005 11:55
AM<BR><B>To:</B> 'David Cole'; Moreland, Kenneth<BR><B>Cc:</B>
cmake@cmake.org<BR><B>Subject:</B> RE: [CMake] CMake 2.2 dependency check
skip<BR></FONT><BR></DIV>
<DIV>
<P><FONT size=2>> > The Makefile2 file is only at the top level. I
would really like to<BR>> > skip the dependency check when compiling one
of the subdirectories<BR>> > (e.g. ParaView/Server/Filters).<BR><BR>OK, I
should be clearer here. There are three parts to dependency checking.<BR>There
is the check_build_system step that is done to verify that files have<BR>not
been removed or that key files have not been changed. Basically it<BR>checks to
see if cmake needs to be rerun or if dependencies need to be<BR>regenerated.
This step is skipped when doing a make from a subdirectory. The<BR>second piece
is actually computing any out of date dependencies, this cannot<BR>be skipped
currently to my knowledge. The third step is make's evaluation
of<BR>dependencies to determine what files should be recompiled. This also
cannot<BR>be skipped.<BR><BR>So in the end the first step is always skipped for
subdirs which is a<BR>problem if you are modifying configured files, cmakelist
files, or removing<BR>files. The third step really makes no sense to skip ever.
The second step,<BR>well I'm a big fan of having up to date dependencies so I
really dig the<BR>second step. I've seen many people have problems with their
program because<BR>they added an ivar to a header file but not all of the object
files that use<BR>it were recompiled. (bus error, bad ESP, seg fault). So that
is my take and<BR>the current state. In hindsight I almost think we should not
skip the first<BR>step even for subdirectories but I'm always open to
suggestions. We can<BR>always add all_nocheck all_nodepend targets to the subdir
makefiles.<BR>Thoughts?<BR><BR><BR>Ken<BR><BR><BR></FONT></P></DIV>
</BODY>
</HTML>