summaryrefslogtreecommitdiff
path: root/Source/cmPropertyDefinition.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmPropertyDefinition.h')
-rw-r--r--Source/cmPropertyDefinition.h70
1 files changed, 70 insertions, 0 deletions
diff --git a/Source/cmPropertyDefinition.h b/Source/cmPropertyDefinition.h
new file mode 100644
index 000000000..16bd148a7
--- /dev/null
+++ b/Source/cmPropertyDefinition.h
@@ -0,0 +1,70 @@
+/*============================================================================
+ CMake - Cross Platform Makefile Generator
+ Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
+
+ Distributed under the OSI-approved BSD License (the "License");
+ see accompanying file Copyright.txt for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even the
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the License for more information.
+============================================================================*/
+#ifndef cmPropertyDefinition_h
+#define cmPropertyDefinition_h
+
+#include "cmProperty.h"
+
+/** \class cmPropertyDefinition
+ * \brief Property meta-information
+ *
+ * This class contains the following meta-information about property:
+ * - Name;
+ * - Various documentation strings;
+ * - The scope of the property;
+ * - If the property is chained.
+ */
+class cmPropertyDefinition
+{
+public:
+ /// Define this property
+ void DefineProperty(const char *name, cmProperty::ScopeType scope,
+ const char *ShortDescription,
+ const char *FullDescription,
+ const char *DocumentationSection,
+ bool chained);
+
+ /// Get the documentation string
+ cmDocumentationEntry GetDocumentation() const;
+
+ /// Default constructor
+ cmPropertyDefinition() { this->Chained = false; };
+
+ /// Is the property chained?
+ bool IsChained() const { return this->Chained; };
+
+ /// Get the section if any
+ const std::string &GetDocumentationSection() const {
+ return this->DocumentationSection; };
+
+ /// Get the scope
+ cmProperty::ScopeType GetScope() const {
+ return this->Scope; };
+
+ /// Get the documentation (short version)
+ const std::string &GetShortDescription() const {
+ return this->ShortDescription; };
+
+ /// Get the documentation (full version)
+ const std::string &GetFullDescription() const {
+ return this->FullDescription; };
+
+protected:
+ std::string Name;
+ std::string ShortDescription;
+ std::string FullDescription;
+ std::string DocumentationSection;
+ cmProperty::ScopeType Scope;
+ bool Chained;
+};
+
+#endif