diff options
author | John Biddiscombe <jbiddiscombe@skippingmouse.co.uk> | 2001-09-04 20:29:11 (GMT) |
---|---|---|
committer | John Biddiscombe <jbiddiscombe@skippingmouse.co.uk> | 2001-09-04 20:29:11 (GMT) |
commit | ecd4acfb01035d227f68c29ce0f65b2193bbd410 (patch) | |
tree | 1a5bcf2a84a54426a082fe79fc78ed57767d77b9 /Source/cmBorlandMakefileGenerator.h | |
parent | cc5c1fa6f739648d2dfc61355908752c5e073621 (diff) | |
download | CMake-ecd4acfb01035d227f68c29ce0f65b2193bbd410.zip CMake-ecd4acfb01035d227f68c29ce0f65b2193bbd410.tar.gz CMake-ecd4acfb01035d227f68c29ce0f65b2193bbd410.tar.bz2 |
NEW: First check in of Borland Makefile Generator and template stuff
Diffstat (limited to 'Source/cmBorlandMakefileGenerator.h')
-rw-r--r-- | Source/cmBorlandMakefileGenerator.h | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/Source/cmBorlandMakefileGenerator.h b/Source/cmBorlandMakefileGenerator.h new file mode 100644 index 0000000..1646944 --- /dev/null +++ b/Source/cmBorlandMakefileGenerator.h @@ -0,0 +1,81 @@ +#ifndef cmBorlandMakefileGenerator_h +#define cmBorlandMakefileGenerator_h + +#include "cmMakefile.h" +#include "cmMakefileGenerator.h" + +/** \class cmBorlandMakefileGenerator + * \brief Write a Unix makefiles. + * + * cmBorlandMakefileGenerator produces a Unix makefile from its + * member m_Makefile. + */ +class cmBorlandMakefileGenerator : public cmMakefileGenerator { + public: + ///! Set cache only and recurse to false by default. + cmBorlandMakefileGenerator(); + + //! just sets the Cache Only and Recurse flags + virtual void SetLocal(bool local); + + /** + * If cache only is on. + * Only stub makefiles are generated, and no depends, for speed. + * The default is OFF. + **/ + void SetCacheOnlyOn() {m_CacheOnly = true;} + void SetCacheOnlyOff() {m_CacheOnly = false;} + + /** + * If recurse is on, then all the makefiles below this one are parsed as well. + */ + void SetRecurseOn() {m_Recurse = true;} + void SetRecurseOff() {m_Recurse = false;} + + /** + * Produce the makefile (in this case a Unix makefile). + */ + virtual void GenerateMakefile(); + + /** + * Output the depend information for all the classes + * in the makefile. These would have been generated + * by the class cmMakeDepend. + */ + void OutputObjectDepends(std::ostream&); + + /** + * Try to determine system infomation such as shared library + * extension, pthreads, byte order etc. + */ + virtual void ComputeSystemInfo(); + + private: + void RecursiveGenerateCacheOnly(); + void GenerateCacheOnly(); + void OutputMakefile(const char* file); + void OutputTargetRules(std::ostream& fout); + void OutputTargets(std::ostream&); + void OutputSubDirectoryRules(std::ostream&); + void OutputDependInformation(std::ostream&); + void OutputDependencies(std::ostream&); + void OutputCustomRules(std::ostream&); + void OutputMakeVariables(std::ostream&); + void OutputMakeRules(std::ostream&); + void OutputSubDirectoryVars(std::ostream& fout, + const char* var, + const char* target, + const char* target1, + const char* target2, + const std::vector<std::string>& SubDirectories); + void OutputMakeRule(std::ostream&, + const char* comment, + const char* target, + const char* depends, + const char* command); + private: + bool m_CacheOnly; + bool m_Recurse; +}; + +#endif |