diff options
author | Ken Martin <ken.martin@kitware.com> | 2007-10-22 16:49:09 (GMT) |
---|---|---|
committer | Ken Martin <ken.martin@kitware.com> | 2007-10-22 16:49:09 (GMT) |
commit | 6cdf03250568c2150094cddfb6542945903b41a1 (patch) | |
tree | d2180686ef12105d6855203eded0505775b507ab /Source/cmPropertyDefinitionMap.cxx | |
parent | cfb84d8562646662cfee9622f657e8eacdd49f8c (diff) | |
download | CMake-6cdf03250568c2150094cddfb6542945903b41a1.zip CMake-6cdf03250568c2150094cddfb6542945903b41a1.tar.gz CMake-6cdf03250568c2150094cddfb6542945903b41a1.tar.bz2 |
ENH: change to make the documentation class more generic, about halfway there, also provides secitons for Variables now
Diffstat (limited to 'Source/cmPropertyDefinitionMap.cxx')
-rw-r--r-- | Source/cmPropertyDefinitionMap.cxx | 51 |
1 files changed, 45 insertions, 6 deletions
diff --git a/Source/cmPropertyDefinitionMap.cxx b/Source/cmPropertyDefinitionMap.cxx index bfc6112..72488e1 100644 --- a/Source/cmPropertyDefinitionMap.cxx +++ b/Source/cmPropertyDefinitionMap.cxx @@ -16,12 +16,13 @@ =========================================================================*/ #include "cmPropertyDefinitionMap.h" #include "cmSystemTools.h" - +#include "cmDocumentationSection.h" void cmPropertyDefinitionMap ::DefineProperty(const char *name, cmProperty::ScopeType scope, const char *ShortDescription, const char *FullDescription, + const char *DocumentationSection, bool chain) { if (!name) @@ -34,21 +35,59 @@ void cmPropertyDefinitionMap if (it == this->end()) { prop = &(*this)[name]; - prop->DefineProperty(name,scope,ShortDescription, FullDescription, chain); + prop->DefineProperty(name,scope,ShortDescription, FullDescription, + DocumentationSection, chain); } } void cmPropertyDefinitionMap -::GetPropertiesDocumentation(std::vector<cmDocumentationEntry>& v) const +::GetPropertiesDocumentation(std::map<std::string, + cmDocumentationSection *>& v) const { for(cmPropertyDefinitionMap::const_iterator j = this->begin(); j != this->end(); ++j) { - cmDocumentationEntry e = j->second.GetDocumentation(); - if (e.brief) + // add a section if needed + std::string secName = j->second.GetDocumentationSection(); + // if a section was not specified then use the scope + if (!secName.size()) { - v.push_back(e); + switch (j->second.GetScope()) + { + case cmProperty::GLOBAL: + secName = "Properties of Global Scope"; + break; + case cmProperty::TARGET: + secName = "Properties on Targets"; + break; + case cmProperty::SOURCE_FILE: + secName = "Properties on Source Files"; + break; + case cmProperty::DIRECTORY: + secName = "Properties on Directories"; + break; + case cmProperty::TEST: + secName = "Properties on Tests"; + break; + case cmProperty::VARIABLE: + secName = "Variables"; + break; + case cmProperty::CACHED_VARIABLE: + secName = "Cached Variables"; + break; + default: + secName = "Properties of Unknown Scope"; + break; + } } + if (!v[secName]) + { + v[secName] = new + cmDocumentationSection(secName.c_str(), + cmSystemTools::UpperCase(secName).c_str()); + } + cmDocumentationEntry e = j->second.GetDocumentation(); + v[secName]->Append(e); } } |