[Cmake] cmake/nmake/VC6.0/VXL

Wheeler, Fred (CRD) wheeler at crd.ge.com
Tue Mar 19 14:48:34 EST 2002


VXL-list:  Anyone else have problems with a top level cmake re-run for each directory traversed
during a build with cygwin/cmake/nmake/MSVC6.0?  Does anyone else compile/use VXL in this
environment?


Bill,

I tried your suggestion, but no luck.  The cache file did not change.  I tried wiping my build
directory and starting a clean build also.  I can watch the cache file change a couple of times to
add pointers to libraries that will appear in the build dirs, like this,

  % diff CMakeCache_2.txt CMakeCache.txt
  178c178
  < NATIVE_JPEG_LIBRARY:FILEPATH=NOTFOUND
  ---
  > NATIVE_JPEG_LIBRARY:FILEPATH=c:/Local/SR/vxl_bld/v3p/jpeg

But, generally the top level runs of cmake do not change the cache file.  The time stamp of the cache
file does not even change.

The build commands I'm using are straightforward,

  (in cygwin, SR is set to a directory)
  cd $SR
  rm -rf $SR/vxl_bld
  mkdir $SR/vxl_bld
  cd $SR/vxl_bld
  cmake -G"NMake Makefiles" "C:\local\sr\vxl_src"
  cp CMakeCache.txt CMakeCache_orig.txt
  nmake

Any other ideas?  Could something be changing the cache back-and-forth?

The following output shows the end of one top-level cmake run, the building of a test exec, and the
next top-level cmake run.


  cmake: creating : c:/Local/SR/vxl_bld/conversions/math/Makefile
  cmake: creating : c:/Local/SR/vxl_bld/conversions/math/tests/Makefile
  cmake: creating : c:/Local/SR/vxl_bld/conversions/misc/Makefile
  cmake: creating : c:/Local/SR/vxl_bld/conversions/misc/tests/Makefile
  Building default_target in directory c:/Local/SR/vxl_bld/vxl/vul/io
  c:\Local\SR\CMake\Source\cmake.exe -SC:\local\sr\vxl_src\vxl\vul\io -Oc:\Local\S
  R\vxl_bld\vxl\vul\io -HC:\local\sr\vxl_src -Bc:\Local\SR\vxl_bld
  'cmake.check_depends' is up-to-date
  'cmake.depends' is up-to-date
  cl /W3 /Zm1000 /GX /GR /MDd /Zi /Od /GZ -IC:\local\sr\vxl_src\vxl\vul\io -Ic:\Lo
  cal\SR\vxl_bld\vcl -Ic:\Local\SR\vxl_bld\vxl -IC:\local\sr\vxl_src\vcl -IC:\loca
  l\sr\vxl_src\vcl\config.win32-VC60 -IC:\local\sr\vxl_src\vxl -DVXL_WARN_DEPRECAT
  ED -DVXL_WARN_DEPRECATED_ONCE -DVCL_WHERE_ROOT_DIR_H_EXISTS -c C:\local\sr\vxl_s
  rc\vxl\vul\io\vul_io_user_info.cxx /Fovul_io_user_info.obj
  Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
  Copyright (C) Microsoft Corp 1984-1998. All rights reserved. 

  vul_io_user_info.cxx
  lib /nologo @c:\DOCUME~1\wheeler\LOCALS~1\Temp\nma01124.
  c:\Local\SR\CMake\Source\cmake.exe -HC:\local\sr\vxl_src -Bc:\Local\SR\vxl_bld
  cmake: creating : c:/Local/SR/vxl_bld/Makefile
  cmake: creating : c:/Local/SR/vxl_bld/vcl/Makefile
  cmake: creating : c:/Local/SR/vxl_bld/vcl/tests/Makefile
  cmake: creating : c:/Local/SR/vxl_bld/v3p/Makefile

Thanks,
Fred Wheeler



-----Original Message-----
From: Bill Hoffman [mailto:bill.hoffman at kitware.com]
Sent: Tuesday, March 19, 2002 1:52 PM
To: Wheeler, Fred (CRD); 'cmake at public.kitware.com'
Subject: Re: [Cmake] cmake/nmake/VC6.0/VXL


Usually, the cause of that is an unstable cache file.   
If the cache file changes, cmake re-runs from the top automatically.
It is sometimes possible to write cmakelist files that change the
cache each time.   To debug this I would go to the top level directory,
and do a make rebuild_cache, then make a copy of CMakeCache.txt, then run
nmake.   If you see it running again from the top, then diff the CMakeCache.txt
file with the backup and try to figure out what changed.
Most of the time it is not possible to change the cache from a cmakelist file, so
this is not a problem.


-Bill


At 01:23 PM 3/19/2002 -0500, Wheeler, Fred (CRD) wrote:
>When I use cmake to compile VXL using nmake and VC6.0 in cygwin, cmake is rerun at the top level and
>recreates every Makefile every time the build enters a new directory.  Is this expected behavior?
>
>Thanks,
>Fred Wheeler
>_______________________________________________
>Cmake mailing list
>Cmake at public.kitware.com
>http://public.kitware.com/mailman/listinfo/cmake 



More information about the CMake mailing list