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
This commit is contained in:
Brad King 2008-05-07 17:25:05 -04:00
parent 2a53075ed8
commit 55606b155e
1 changed files with 8 additions and 5 deletions

View File

@ -1438,8 +1438,8 @@ cmLocalUnixMakefileGenerator3
// create the file stream for the depends file // create the file stream for the depends file
std::string dir = targetDir; std::string dir = targetDir;
// Open the rule file. This should be copy-if-different because the // Open the make depends file. This should be copy-if-different
// rules may depend on this file itself. // because the make tool may try to reload it needlessly otherwise.
std::string ruleFileNameFull = dir; std::string ruleFileNameFull = dir;
ruleFileNameFull += "/depend.make"; ruleFileNameFull += "/depend.make";
cmGeneratedFileStream ruleFileStream(ruleFileNameFull.c_str()); cmGeneratedFileStream ruleFileStream(ruleFileNameFull.c_str());
@ -1448,11 +1448,14 @@ cmLocalUnixMakefileGenerator3
{ {
return false; 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; std::string internalRuleFileNameFull = dir;
internalRuleFileNameFull += "/depend.internal"; internalRuleFileNameFull += "/depend.internal";
cmGeneratedFileStream cmGeneratedFileStream
internalRuleFileStream(internalRuleFileNameFull.c_str()); internalRuleFileStream(internalRuleFileNameFull.c_str());
internalRuleFileStream.SetCopyIfDifferent(true);
if(!internalRuleFileStream) if(!internalRuleFileStream)
{ {
return false; return false;