[Cmake-commits] [cmake-commits] king committed cmLocalUnixMakefileGenerator3.cxx 1.247 1.248

cmake-commits at cmake.org cmake-commits at cmake.org
Wed May 7 17:25:07 EDT 2008


Update of /cvsroot/CMake/CMake/Source
In directory public:/mounts/ram/cvs-serv456/Source

Modified Files:
	cmLocalUnixMakefileGenerator3.cxx 
Log Message:
BUG: Fix repeated re-scanning of dependencies when the results do not change.

  - We re-scan deps when DependInfo.cmake is newer than depend.internal
  - Therefore depend.internal should not be copy-if-different


Index: cmLocalUnixMakefileGenerator3.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmLocalUnixMakefileGenerator3.cxx,v
retrieving revision 1.247
retrieving revision 1.248
diff -C 2 -d -r1.247 -r1.248
*** cmLocalUnixMakefileGenerator3.cxx	30 Apr 2008 19:58:56 -0000	1.247
--- cmLocalUnixMakefileGenerator3.cxx	7 May 2008 21:25:05 -0000	1.248
***************
*** 1438,1444 ****
    // create the file stream for the depends file
    std::string dir = targetDir;
!   
!   // Open the rule file.  This should be copy-if-different because the
!   // rules may depend on this file itself.
    std::string ruleFileNameFull = dir;
    ruleFileNameFull += "/depend.make";
--- 1438,1444 ----
    // create the file stream for the depends file
    std::string dir = targetDir;
! 
!   // Open the make depends file.  This should be copy-if-different
!   // because the make tool may try to reload it needlessly otherwise.
    std::string ruleFileNameFull = dir;
    ruleFileNameFull += "/depend.make";
***************
*** 1449,1457 ****
      return false;
      }
    std::string internalRuleFileNameFull = dir;
    internalRuleFileNameFull += "/depend.internal";
!   cmGeneratedFileStream 
      internalRuleFileStream(internalRuleFileNameFull.c_str());
-   internalRuleFileStream.SetCopyIfDifferent(true);
    if(!internalRuleFileStream)
      {
--- 1449,1460 ----
      return false;
      }
+ 
+   // Open the cmake dependency tracking file.  This should not be
+   // copy-if-different because dependencies are re-scanned when it is
+   // older than the DependInfo.cmake.
    std::string internalRuleFileNameFull = dir;
    internalRuleFileNameFull += "/depend.internal";
!   cmGeneratedFileStream
      internalRuleFileStream(internalRuleFileNameFull.c_str());
    if(!internalRuleFileStream)
      {



More information about the Cmake-commits mailing list