summaryrefslogtreecommitdiffstats
path: root/Source/cmDocumentation.cxx
diff options
context:
space:
mode:
authorAlexander Neundorf <neundorf@kde.org>2007-06-22 12:44:51 (GMT)
committerAlexander Neundorf <neundorf@kde.org>2007-06-22 12:44:51 (GMT)
commit1d9889c5d34d83b269697c0b09e840bf83066e6f (patch)
treee1aed919ac0b90dc4a25ac02a8d2cbee69a79977 /Source/cmDocumentation.cxx
parent1383368628411f3834e2e29e81be306db74c610f (diff)
downloadCMake-1d9889c5d34d83b269697c0b09e840bf83066e6f.zip
CMake-1d9889c5d34d83b269697c0b09e840bf83066e6f.tar.gz
CMake-1d9889c5d34d83b269697c0b09e840bf83066e6f.tar.bz2
ENH: put compatibility commands in extra section and prepare for creating
separate man pages for properties, modules, commands and compatibility commands Alex
Diffstat (limited to 'Source/cmDocumentation.cxx')
-rw-r--r--Source/cmDocumentation.cxx106
1 files changed, 102 insertions, 4 deletions
diff --git a/Source/cmDocumentation.cxx b/Source/cmDocumentation.cxx
index 16ae84b..0c1a472 100644
--- a/Source/cmDocumentation.cxx
+++ b/Source/cmDocumentation.cxx
@@ -44,6 +44,48 @@ static const cmDocumentationEntry cmDocumentationStandardOptions[] =
};
//----------------------------------------------------------------------------
+static const cmDocumentationEntry cmModulesDocumentationDescription[] =
+{
+ {0,
+ " CMake Modules - Modules coming with CMake, the Cross-Platform Makefile Generator.", 0},
+// CMAKE_DOCUMENTATION_OVERVIEW,
+ {0,
+ "This is the documentation for the modules and scripts coming with CMake. "
+ "Using these modules you can check the computer system for "
+ "installed software packages, features of the compiler and the "
+ "existance of headers to name just a few.", 0},
+ {0,0,0}
+};
+
+//----------------------------------------------------------------------------
+static const cmDocumentationEntry cmPropertiesDocumentationDescription[] =
+{
+ {0,
+ " CMake Properties - Properties supported by CMake, the Cross-Platform Makefile Generator.", 0},
+// CMAKE_DOCUMENTATION_OVERVIEW,
+ {0,
+ "This is the documentation for the properties supported by CMake. "
+ "Properties can have different scopes. They can either be assigned to a source file, "
+ "a directory, a target or globally to CMake. "
+ "By modifying the values of properties the behaviour of the buildsystem can be "
+ "customized.", 0},
+ {0,0,0}
+};
+
+//----------------------------------------------------------------------------
+static const cmDocumentationEntry cmCompatCommandsDocumentationDescription[] =
+{
+ {0,
+ " CMake Compatibility Listfile Commands - Obsolete commands supported by CMake for compatibility.", 0},
+// CMAKE_DOCUMENTATION_OVERVIEW,
+ {0,
+ "This is the documentation for now obsolete listfile commands from "
+ "previous CMake versions, which are still supported for compatibility reasons. "
+ "You should instead use the newer, faster and shinier new commands. ;-)", 0},
+ {0,0,0}
+};
+
+//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationCommandsHeader[] =
{
{0,
@@ -229,10 +271,10 @@ void cmDocumentation::AddSection(const char* name,
void cmDocumentation::AddSection(const cmSection& section)
{
if (!section.IsEmpty())
- {
- this->Names.push_back(section.GetName(this->CurrentForm));
- this->Sections.push_back(section.GetEntries());
- }
+ {
+ this->Names.push_back(section.GetName(this->CurrentForm));
+ this->Sections.push_back(section.GetEntries());
+ }
}
//----------------------------------------------------------------------------
@@ -637,6 +679,13 @@ void cmDocumentation::SetCommandsSection(const cmDocumentationEntry* section)
}
//----------------------------------------------------------------------------
+void cmDocumentation::SetCompatCommandsSection(const cmDocumentationEntry*
+ section)
+{
+ this->CompatCommandsSection.Set(cmDocumentationCommandsHeader, section, 0);
+}
+
+//----------------------------------------------------------------------------
void cmDocumentation
::SetPropertiesSection(const cmDocumentationEntry* section)
{
@@ -1171,6 +1220,16 @@ bool cmDocumentation::PrintDocumentationSingle(std::ostream& os)
return true;
}
}
+ for(cmDocumentationEntry* entry = this->CompatCommandsSection.GetEntries();
+ entry->brief; ++entry)
+ {
+ if(entry->name && this->SingleCommand == entry->name)
+ {
+ this->PrintDocumentationCommand(os, entry);
+ return true;
+ }
+ }
+
// Argument was not a command. Complain.
os << "Argument \"" << this->SingleCommand.c_str()
<< "\" to --help-command is not a CMake command. "
@@ -1380,6 +1439,7 @@ void cmDocumentation::CreateFullDocumentation()
this->AddSection(this->OptionsSection);
this->AddSection(this->GeneratorsSection);
this->AddSection(this->CommandsSection);
+ this->AddSection(this->CompatCommandsSection);
this->AddSection(this->ModulesSection);
this->AddSection(this->PropertiesSection);
this->AddSection(this->CopyrightSection.GetName(this->CurrentForm),
@@ -1398,6 +1458,44 @@ void cmDocumentation::CreateFullDocumentation()
}
}
+void cmDocumentation::CreateCurrentCommandDocumentation()
+{
+ this->ClearSections();
+ this->AddSection(this->DescriptionSection.GetName(CurrentForm), cmCompatCommandsDocumentationDescription);
+ this->AddSection(this->CompatCommandsSection);
+ this->AddSection(this->CopyrightSection.GetName(CurrentForm), cmDocumentationCopyright);
+ this->AddSection(this->SeeAlsoSection.GetName(CurrentForm), cmDocumentationStandardSeeAlso);
+}
+
+void cmDocumentation::CreateCompatCommandDocumentation()
+{
+ this->ClearSections();
+ this->AddSection(this->DescriptionSection.GetName(CurrentForm), cmCompatCommandsDocumentationDescription);
+ this->AddSection(this->CompatCommandsSection);
+ this->AddSection(this->CopyrightSection.GetName(CurrentForm), cmDocumentationCopyright);
+ this->AddSection(this->SeeAlsoSection.GetName(CurrentForm), cmDocumentationStandardSeeAlso);
+}
+
+//----------------------------------------------------------------------------
+void cmDocumentation::CreateModulesDocumentation()
+ {
+ this->ClearSections();
+ this->AddSection(this->DescriptionSection.GetName(CurrentForm), cmModulesDocumentationDescription);
+ this->AddSection(this->ModulesSection);
+ this->AddSection(this->CopyrightSection.GetName(CurrentForm), cmDocumentationCopyright);
+ this->AddSection(this->SeeAlsoSection.GetName(CurrentForm), cmDocumentationStandardSeeAlso);
+}
+
+//----------------------------------------------------------------------------
+void cmDocumentation::CreatePropertiesDocumentation()
+{
+ this->ClearSections();
+ this->AddSection(this->DescriptionSection.GetName(CurrentForm), cmPropertiesDocumentationDescription);
+ this->AddSection(this->PropertiesSection);
+ this->AddSection(this->CopyrightSection.GetName(CurrentForm), cmDocumentationCopyright);
+ this->AddSection(this->SeeAlsoSection.GetName(CurrentForm), cmDocumentationStandardSeeAlso);
+}
+
//----------------------------------------------------------------------------
void cmDocumentation::cmSection::Set(const cmDocumentationEntry* header,
const cmDocumentationEntry* section,