From 55606b155e03a452f59922725019299921688181 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 7 May 2008 17:25:05 -0400 Subject: [PATCH] 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 --- Source/cmLocalUnixMakefileGenerator3.cxx | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx b/Source/cmLocalUnixMakefileGenerator3.cxx index c4f7d0ebf..441f0fe0c 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;