summaryrefslogtreecommitdiff
path: root/Source/cmDepends.h
diff options
context:
space:
mode:
authorAndy Cedilnik <andy.cedilnik@kitware.com>2005-10-12 13:52:29 -0400
committerAndy Cedilnik <andy.cedilnik@kitware.com>2005-10-12 13:52:29 -0400
commitf18e7c7ff7935a93076384ba15629942f559cc8d (patch)
tree85b1a0bc3002c93654f58ec579e73d549b0eec27 /Source/cmDepends.h
parenta51dfefe796c1c7108d92e79dc77607c8307ef4b (diff)
downloadcmake-f18e7c7ff7935a93076384ba15629942f559cc8d.tar.gz
ENH: Improve performance of check build system by creating another file that is simpler to parse and therefore much faster overall
Diffstat (limited to 'Source/cmDepends.h')
-rw-r--r--Source/cmDepends.h21
1 files changed, 16 insertions, 5 deletions
diff --git a/Source/cmDepends.h b/Source/cmDepends.h
index 0ccd812bc1..5196b6b708 100644
--- a/Source/cmDepends.h
+++ b/Source/cmDepends.h
@@ -19,6 +19,8 @@
#include "cmStandardIncludes.h"
+class cmFileTimeComparison;
+
/** \class cmDepends
* \brief Dependency scanner superclass.
*
@@ -43,25 +45,29 @@ public:
virtual ~cmDepends();
/** Write dependencies for the target file. */
- bool Write(const char *src, const char *obj, std::ostream &os);
+ bool Write(const char *src, const char *obj,
+ std::ostream &makeDepends, std::ostream &internalDepends);
/** Check dependencies for the target file. */
- void Check(const char *file);
+ void Check(const char *makeFile, const char* internalFile);
/** Clear dependencies for the target file so they will be regenerated. */
void Clear(const char *file);
+ /** Set the file comparison object */
+ void SetFileComparison(cmFileTimeComparison* fc) { m_FileComparison = fc; }
+
protected:
// Write dependencies for the target file to the given stream.
// Return true for success and false for failure.
- virtual bool WriteDependencies(const char *src,
- const char* obj, std::ostream& os)=0;
+ virtual bool WriteDependencies(const char *src, const char* obj,
+ std::ostream& makeDepends, std::ostream& internalDepends)=0;
// Check dependencies for the target file in the given stream.
// Return false if dependencies must be regenerated and true
// otherwise.
- virtual bool CheckDependencies(std::istream& is) = 0;
+ virtual bool CheckDependencies(std::istream& internalDepends);
// The directory in which the build rule for the target file is executed.
std::string m_Directory;
@@ -69,6 +75,11 @@ protected:
// Flag for verbose output.
bool m_Verbose;
+ cmFileTimeComparison* m_FileComparison;
+
+ size_t m_MaxPath;
+ char* m_Dependee;
+ char* m_Depender;
private:
cmDepends(cmDepends const&); // Purposely not implemented.