diff options
author | Andy Cedilnik <andy.cedilnik@kitware.com> | 2005-10-12 17:52:29 (GMT) |
---|---|---|
committer | Andy Cedilnik <andy.cedilnik@kitware.com> | 2005-10-12 17:52:29 (GMT) |
commit | f18e7c7ff7935a93076384ba15629942f559cc8d (patch) | |
tree | 85b1a0bc3002c93654f58ec579e73d549b0eec27 /Source/cmDepends.h | |
parent | a51dfefe796c1c7108d92e79dc77607c8307ef4b (diff) | |
download | CMake-f18e7c7ff7935a93076384ba15629942f559cc8d.zip CMake-f18e7c7ff7935a93076384ba15629942f559cc8d.tar.gz CMake-f18e7c7ff7935a93076384ba15629942f559cc8d.tar.bz2 |
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.h | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/Source/cmDepends.h b/Source/cmDepends.h index 0ccd812..5196b6b 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. |