summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2008-05-07 21:25:05 (GMT)
committerBrad King <brad.king@kitware.com>2008-05-07 21:25:05 (GMT)
commit55606b155e03a452f59922725019299921688181 (patch)
tree155c8109b6c6b9fcdb8fa8358e0d15c3cbe3e2a4 /Source
parent2a53075ed823976c3b3b9f87ee7758145babc38e (diff)
downloadCMake-55606b155e03a452f59922725019299921688181.zip
CMake-55606b155e03a452f59922725019299921688181.tar.gz
CMake-55606b155e03a452f59922725019299921688181.tar.bz2
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
Diffstat (limited to 'Source')
-rw-r--r--Source/cmLocalUnixMakefileGenerator3.cxx13
1 files changed, 8 insertions, 5 deletions
diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx b/Source/cmLocalUnixMakefileGenerator3.cxx
index c4f7d0e..441f0fe 100644
--- a/Source/cmLocalUnixMakefileGenerator3.cxx
+++ b/Source/cmLocalUnixMakefileGenerator3.cxx
@@ -1437,9 +1437,9 @@ cmLocalUnixMakefileGenerator3
// 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.
+
+ // 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";
cmGeneratedFileStream ruleFileStream(ruleFileNameFull.c_str());
@@ -1448,11 +1448,14 @@ cmLocalUnixMakefileGenerator3
{
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
+ cmGeneratedFileStream
internalRuleFileStream(internalRuleFileNameFull.c_str());
- internalRuleFileStream.SetCopyIfDifferent(true);
if(!internalRuleFileStream)
{
return false;