summaryrefslogtreecommitdiffstats
path: root/Source/cmDocumentation.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmDocumentation.h')
-rw-r--r--Source/cmDocumentation.h65
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