diff options
author | Brad King <brad.king@kitware.com> | 2003-02-14 15:53:37 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2003-02-14 15:53:37 (GMT) |
commit | 1f55680332c133fddce4a0b85cfb7ee1a20cff75 (patch) | |
tree | 7cc80032918bf19095fe31fb7d52b29e6c1d64e8 /Source/cmDocumentation.h | |
parent | d9a74e1b1e18156be224697383b571ad9af4336c (diff) | |
download | CMake-1f55680332c133fddce4a0b85cfb7ee1a20cff75.zip CMake-1f55680332c133fddce4a0b85cfb7ee1a20cff75.tar.gz CMake-1f55680332c133fddce4a0b85cfb7ee1a20cff75.tar.bz2 |
ENH: Added cmDocumentation class to generate various forms of documentation. Each executable will be able to generate its own documentation.
Diffstat (limited to 'Source/cmDocumentation.h')
-rw-r--r-- | Source/cmDocumentation.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/Source/cmDocumentation.h b/Source/cmDocumentation.h new file mode 100644 index 0000000..1081b12 --- /dev/null +++ b/Source/cmDocumentation.h @@ -0,0 +1,65 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef _cmDocumentation_h +#define _cmDocumentation_h + +#include "cmStandardIncludes.h" + +/** Class to generate documentation. */ +class cmDocumentation +{ +public: + cmDocumentation(); + + enum Type { None, Usage, Help, HelpHTML, Man, Copyright, Version }; + + void Print(Type ht, std::ostream& os); + void PrintUsage(std::ostream& os); + void PrintHelp(std::ostream& os); + void PrintHelpHTML(std::ostream& os); + void PrintManPage(std::ostream& os); + void PrintCopyright(std::ostream& os); + void PrintVersion(std::ostream& os); + + void SetCommands(const cmDocumentationEntry* d) {this->Commands = d;} + void SetDescription(const cmDocumentationEntry* d) {this->Description = d;} + void SetName(const cmDocumentationEntry* d) {this->Name = d;} + void SetOptions(const cmDocumentationEntry* d); + void SetUsage(const cmDocumentationEntry* d) {this->UsageHelp = d;} + + Type CheckOptions(int argc, char** argv); +private: + void PrintColumn(std::ostream& os, int width, + const char* indent, const char* text); + void PrintManSection(std::ostream& os, const cmDocumentationEntry* section, + const char* name); + void PrintHelpSection(std::ostream& os, const cmDocumentationEntry* section); + void PrintHTMLEscapes(std::ostream& os, const char* text); + void PrintHelpHTMLSection(std::ostream& os, + const cmDocumentationEntry* section, + const char* header); + void PrintUsageSection(std::ostream& os, + const cmDocumentationEntry* section); + + const cmDocumentationEntry* Commands; + const cmDocumentationEntry* Description; + const cmDocumentationEntry* Name; + std::vector<cmDocumentationEntry> Options; + const cmDocumentationEntry* UsageHelp; +}; + +#endif |