[cmake-commits] alex committed cmDocumentation.h 1.23 1.24

cmake-commits at cmake.org cmake-commits at cmake.org
Mon Jul 2 11:24:46 EDT 2007


Update of /cvsroot/CMake/CMake/Source
In directory public:/mounts/ram/cvs-serv2231

Modified Files:
	cmDocumentation.h 
Log Message:

COMP: fix build with msvc 6, the enums are now part of a class which is
already completely parsed

Alex


Index: cmDocumentation.h
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmDocumentation.h,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- cmDocumentation.h	28 Jun 2007 19:04:28 -0000	1.23
+++ cmDocumentation.h	2 Jul 2007 15:24:44 -0000	1.24
@@ -19,8 +19,29 @@
 
 #include "cmStandardIncludes.h"
 
+/** This is just a helper class to make it build with MSVC 6.0.
+Actually the enums and internal classes could directly go into
+cmDocumentation, but then MSVC6 complains in RequestedHelpItem that 
+cmDocumentation is an undefined type and so it doesn't know the enums.
+Moving the enums to a class which is then already completely parsed helps. 
+against this. */
+class cmDocumentationEnums
+{
+public:
+  /** Types of help provided.  */
+  enum Type 
+     { None, Usage, Single, SingleModule, SingleProperty,
+       List, ModuleList, PropertyList,
+       Full, Properties, Modules, Commands, CompatCommands,
+       Copyright, Version };
+
+  /** Forms of documentation output.  */
+  enum Form { TextForm, HTMLForm, ManForm, UsageForm };
+};
+
+
 /** Class to generate documentation.  */
-class cmDocumentation
+class cmDocumentation: public cmDocumentationEnums
 {
 public:
   cmDocumentation();
@@ -28,12 +49,6 @@
   ~cmDocumentation();
   // High-level interface for standard documents:
   
-  /** Types of help provided.  */
-  enum Type { None, Usage, Single, SingleModule, SingleProperty,
-              List, ModuleList, PropertyList,
-              Full, Properties, Modules, Commands, CompatCommands,
-              Copyright, Version };
-  
   /**
    * Check command line arguments for documentation options.  Returns
    * true if documentation options are found, and false otherwise.
@@ -85,11 +100,6 @@
   void SetSeeAlsoList(const cmDocumentationEntry*);
   
   // Low-level interface for custom documents:
-  
-  /** Forms of documentation output.  */
-  enum Form { TextForm, HTMLForm, ManForm, UsageForm };
-  
-  
   /** Internal class representing a section of the documentation.
    * Cares e.g. for the different section titles in the different
    * output formats.
@@ -131,7 +141,6 @@
       std::string ManName;
       std::vector<cmDocumentationEntry> Entries;
       static const cmDocumentationEntry EmptySection;
-
   };
 
   /**
@@ -254,8 +263,8 @@
   struct RequestedHelpItem
   {
     RequestedHelpItem():Form(TextForm), Type(None) {}
-    cmDocumentation::Form Form;
-    cmDocumentation::Type Type;
+    cmDocumentationEnums::Form Form;
+    cmDocumentationEnums::Type Type;
     std::string Filename;
     std::string Argument;
   };



More information about the Cmake-commits mailing list