diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2001-01-05 16:41:20 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2001-01-05 16:41:20 (GMT) |
commit | c54a05bfc799f3e88459956ec37698bab22c27f9 (patch) | |
tree | 400b2eb0b6853952a4faa8c0fc41b90eb06deaec /Source/cmRuleMaker.h | |
parent | d888b5e39d4e01af538b48ad16c2a6a474de34a0 (diff) | |
download | CMake-c54a05bfc799f3e88459956ec37698bab22c27f9.zip CMake-c54a05bfc799f3e88459956ec37698bab22c27f9.tar.gz CMake-c54a05bfc799f3e88459956ec37698bab22c27f9.tar.bz2 |
ENH: rework cmake, added ruleMaker classes and changed the syntax of the CMakeLists.txt files.
Diffstat (limited to 'Source/cmRuleMaker.h')
-rw-r--r-- | Source/cmRuleMaker.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/Source/cmRuleMaker.h b/Source/cmRuleMaker.h new file mode 100644 index 0000000..e013ea5 --- /dev/null +++ b/Source/cmRuleMaker.h @@ -0,0 +1,52 @@ +#ifndef cmRuleMaker_h +#define cmRuleMaker_h +#include "cmStandardIncludes.h" +#include "cmMakefile.h" + +class cmRuleMaker +{ +public: + cmRuleMaker() { m_Makefile = 0; m_Enabled = true; } + void SetMakefile(cmMakefile*m) {m_Makefile = m; } + // This is called when the rule is firt encountered in + // the input file + virtual bool Invoke(std::vector<std::string>& args) = 0; + // This is called after the entire file has been parsed. + virtual void FinalPass() = 0; + // This is called to let the rule check the cache + virtual void LoadCache() { } + + virtual cmRuleMaker* Clone() = 0; + + // This determines if the rule gets passed down + // to sub directory makefiles + virtual bool IsInherited() + { + return false; + } + // This is the name used in the input file. + virtual const char* GetName() = 0; + // Return the terse documentaion for the rule + virtual const char* TerseDocumentaion() = 0; + // Return full documentation for the rule + virtual const char* FullDocumentaion() = 0; + // enable or disable this rule + bool GetEnabled() { return m_Enabled; } + void SetEnableOn() { m_Enabled = true; } + void SetEnableOff() { m_Enabled = false; } + const char* GetError() { return m_Error.c_str();} +protected: + void SetError(const char* e) + { + m_Error = this->GetName(); + m_Error += " "; + m_Error += e; + } + cmMakefile* m_Makefile; +private: + bool m_Enabled; + std::string m_Error; +}; + + +#endif |