summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmDocumentation.cxx107
-rw-r--r--Source/cmDocumentation.h11
-rw-r--r--Source/cmakemain.cxx8
-rw-r--r--Utilities/CMakeLists.txt46
4 files changed, 148 insertions, 24 deletions
diff --git a/Source/cmDocumentation.cxx b/Source/cmDocumentation.cxx
index 90deae6..3568aef 100644
--- a/Source/cmDocumentation.cxx
+++ b/Source/cmDocumentation.cxx
@@ -305,14 +305,28 @@ bool cmDocumentation::PrintDocumentation(Type ht, std::ostream& os)
return this->PrintDocumentationSingleModule(os);
case cmDocumentation::SingleProperty:
return this->PrintDocumentationSingleProperty(os);
- case cmDocumentation::List: return this->PrintDocumentationList(os);
- case cmDocumentation::ModuleList: return this->PrintModuleList(os);
- case cmDocumentation::PropertyList: return this->PrintPropertyList(os);
-
- case cmDocumentation::Full: return this->PrintDocumentationFull(os);
-
- case cmDocumentation::Copyright: return this->PrintCopyright(os);
- case cmDocumentation::Version: return true;
+ case cmDocumentation::List:
+ return this->PrintDocumentationList(os);
+ case cmDocumentation::ModuleList:
+ return this->PrintModuleList(os);
+ case cmDocumentation::PropertyList:
+ return this->PrintPropertyList(os);
+
+ case cmDocumentation::Full:
+ return this->PrintDocumentationFull(os);
+ case cmDocumentation::Modules:
+ return this->PrintDocumentationModules(os);
+ case cmDocumentation::Properties:
+ return this->PrintDocumentationProperties(os);
+ case cmDocumentation::Commands:
+ return this->PrintDocumentationCurrentCommands(os);
+ case cmDocumentation::CompatCommands:
+ return this->PrintDocumentationCompatCommands(os);
+
+ case cmDocumentation::Copyright:
+ return this->PrintCopyright(os);
+ case cmDocumentation::Version:
+ return true;
default: return false;
}
}
@@ -549,6 +563,30 @@ bool cmDocumentation::CheckOptions(int argc, const char* const* argv)
help.Type = cmDocumentation::Single;
}
}
+ else if(strcmp(argv[i], "--help-properties") == 0)
+ {
+ help.Type = cmDocumentation::Properties;
+ GET_OPT_FILENAME(help.Filename);
+ help.Form = this->GetFormFromFilename(help.Filename);
+ }
+ else if(strcmp(argv[i], "--help-modules") == 0)
+ {
+ help.Type = cmDocumentation::Modules;
+ GET_OPT_FILENAME(help.Filename);
+ help.Form = this->GetFormFromFilename(help.Filename);
+ }
+ else if(strcmp(argv[i], "--help-commands") == 0)
+ {
+ help.Type = cmDocumentation::Commands;
+ GET_OPT_FILENAME(help.Filename);
+ help.Form = this->GetFormFromFilename(help.Filename);
+ }
+ else if(strcmp(argv[i], "--help-compatcommands") == 0)
+ {
+ help.Type = cmDocumentation::CompatCommands;
+ GET_OPT_FILENAME(help.Filename);
+ help.Form = this->GetFormFromFilename(help.Filename);
+ }
else if(strcmp(argv[i], "--help-full") == 0)
{
help.Type = cmDocumentation::Full;
@@ -1388,6 +1426,46 @@ bool cmDocumentation::PrintDocumentationFull(std::ostream& os)
}
//----------------------------------------------------------------------------
+bool cmDocumentation::PrintDocumentationModules(std::ostream& os)
+{
+ this->CreateModulesDocumentation();
+ this->PrintHeader(GetNameString(), os);
+ this->Print(os);
+ this->PrintFooter(os);
+ return true;
+}
+
+//----------------------------------------------------------------------------
+bool cmDocumentation::PrintDocumentationProperties(std::ostream& os)
+{
+ this->CreatePropertiesDocumentation();
+ this->PrintHeader(GetNameString(), os);
+ this->Print(os);
+ this->PrintFooter(os);
+ return true;
+}
+
+//----------------------------------------------------------------------------
+bool cmDocumentation::PrintDocumentationCurrentCommands(std::ostream& os)
+{
+ this->CreateCurrentCommandsDocumentation();
+ this->PrintHeader(GetNameString(), os);
+ this->Print(os);
+ this->PrintFooter(os);
+ return true;
+}
+
+//----------------------------------------------------------------------------
+bool cmDocumentation::PrintDocumentationCompatCommands(std::ostream& os)
+{
+ this->CreateCompatCommandsDocumentation();
+ this->PrintHeader(GetNameString(), os);
+ this->Print(os);
+ this->PrintFooter(os);
+ return true;
+}
+
+//----------------------------------------------------------------------------
void cmDocumentation::PrintHeader(const char* name, std::ostream& os)
{
switch(this->CurrentForm)
@@ -1476,19 +1554,17 @@ void cmDocumentation::CreateFullDocumentation()
}
}
-void cmDocumentation::CreateCurrentCommandDocumentation()
+void cmDocumentation::CreateCurrentCommandsDocumentation()
{
this->ClearSections();
- this->AddSection(this->DescriptionSection.GetName(CurrentForm),
- cmCompatCommandsDocumentationDescription);
- this->AddSection(this->CompatCommandsSection);
+ this->AddSection(this->CommandsSection);
this->AddSection(this->CopyrightSection.GetName(CurrentForm),
cmDocumentationCopyright);
this->AddSection(this->SeeAlsoSection.GetName(CurrentForm),
cmDocumentationStandardSeeAlso);
}
-void cmDocumentation::CreateCompatCommandDocumentation()
+void cmDocumentation::CreateCompatCommandsDocumentation()
{
this->ClearSections();
this->AddSection(this->DescriptionSection.GetName(CurrentForm),
@@ -1502,8 +1578,9 @@ void cmDocumentation::CreateCompatCommandDocumentation()
//----------------------------------------------------------------------------
void cmDocumentation::CreateModulesDocumentation()
- {
- this->ClearSections();
+{
+ this->ClearSections();
+ this->CreateModulesSection();
this->AddSection(this->DescriptionSection.GetName(CurrentForm),
cmModulesDocumentationDescription);
this->AddSection(this->ModulesSection);
diff --git a/Source/cmDocumentation.h b/Source/cmDocumentation.h
index b54c904..09da00c 100644
--- a/Source/cmDocumentation.h
+++ b/Source/cmDocumentation.h
@@ -31,7 +31,8 @@ public:
/** Types of help provided. */
enum Type { None, Usage, Single, SingleModule, SingleProperty,
List, ModuleList, PropertyList,
- Full, Copyright, Version };
+ Full, Properties, Modules, Commands, CompatCommands,
+ Copyright, Version };
/**
* Check command line arguments for documentation options. Returns
@@ -205,13 +206,17 @@ private:
bool PrintDocumentationSingleProperty(std::ostream& os);
bool PrintDocumentationUsage(std::ostream& os);
bool PrintDocumentationFull(std::ostream& os);
+ bool PrintDocumentationModules(std::ostream& os);
+ bool PrintDocumentationProperties(std::ostream& os);
+ bool PrintDocumentationCurrentCommands(std::ostream& os);
+ bool PrintDocumentationCompatCommands(std::ostream& os);
void PrintDocumentationCommand(std::ostream& os,
const cmDocumentationEntry* entry);
void CreateUsageDocumentation();
void CreateFullDocumentation();
- void CreateCurrentCommandDocumentation();
- void CreateCompatCommandDocumentation();
+ void CreateCurrentCommandsDocumentation();
+ void CreateCompatCommandsDocumentation();
void CreateModulesDocumentation();
void CreatePropertiesDocumentation();
diff --git a/Source/cmakemain.cxx b/Source/cmakemain.cxx
index e204b8f..4d075fa 100644
--- a/Source/cmakemain.cxx
+++ b/Source/cmakemain.cxx
@@ -100,12 +100,18 @@ static const cmDocumentationEntry cmDocumentationOptions[] =
"The list contains all commands for which help may be obtained by using "
"the --help-command argument followed by a command name. If a file is "
"specified, the help is written into it."},
+ {"--help-commands [file]", "Print help for all commands and exit.",
+ "Full documentation specific for all current command is displayed."},
+ {"--help-compatcommands [file]", "Print help for compatibility commands. ",
+ "Full documentation specific for all compatibility commands is displayed."},
{"--help-module module [file]", "Print help for a single module and exit.",
"Full documentation specific to the given module is displayed."},
{"--help-module-list [file]", "List available modules and exit.",
"The list contains all modules for which help may be obtained by using "
"the --help-module argument followed by a module name. If a file is "
"specified, the help is written into it."},
+ {"--help-modules [file]", "Print help for all modules and exit.",
+ "Full documentation for all modules is displayed."},
{"--help-property prop [file]",
"Print help for a single property and exit.",
"Full documentation specific to the given module is displayed."},
@@ -113,6 +119,8 @@ static const cmDocumentationEntry cmDocumentationOptions[] =
"The list contains all properties for which help may be obtained by using "
"the --help-property argument followed by a property name. If a file is "
"specified, the help is written into it."},
+ {"--help-properties [file]", "Print help for all properties and exit.",
+ "Full documentation for all properties is displayed."},
{0,0,0}
};
diff --git a/Utilities/CMakeLists.txt b/Utilities/CMakeLists.txt
index 44ec014..d9d76bf 100644
--- a/Utilities/CMakeLists.txt
+++ b/Utilities/CMakeLists.txt
@@ -29,22 +29,56 @@ MACRO(ADD_DOCS target dependency)
ENDMACRO(ADD_DOCS target dependency)
# add the docs for the executables
-ADD_DOCS(cmake ${CMake_SOURCE_DIR}/Utilities/Doxygen/authors.txt)
ADD_DOCS(ctest ${CMake_SOURCE_DIR}/Utilities/Doxygen/authors.txt)
ADD_DOCS(cpack ${CMake_SOURCE_DIR}/Utilities/Doxygen/authors.txt)
ADD_DOCS(ccmake ${CMake_SOURCE_DIR}/Utilities/Doxygen/authors.txt)
ADD_DOCS(CMakeSetup ${CMake_SOURCE_DIR}/Utilities/Doxygen/doxyfile.in)
-# add the Copyright file
+# add the documentation for cmake itself
+SET(CMAKE_DOC_FILES
+ ${CMake_BINARY_DIR}/Docs/cmake.txt
+ ${CMake_BINARY_DIR}/Docs/cmake.html
+ ${CMake_BINARY_DIR}/Docs/cmake-properties.txt
+ ${CMake_BINARY_DIR}/Docs/cmake-properties.html
+ ${CMake_BINARY_DIR}/Docs/cmake-modules.txt
+ ${CMake_BINARY_DIR}/Docs/cmake-modules.html
+ ${CMake_BINARY_DIR}/Docs/cmake-commands.txt
+ ${CMake_BINARY_DIR}/Docs/cmake-commands.html
+ ${CMake_BINARY_DIR}/Docs/cmake-compatcommands.txt
+ ${CMake_BINARY_DIR}/Docs/cmake-compatcommands.html )
+
+
GET_TARGET_PROPERTY(CMD cmake LOCATION)
ADD_CUSTOM_COMMAND(
- OUTPUT ${CMake_BINARY_DIR}/Docs/Copyright.txt
+ OUTPUT ${CMAKE_DOC_FILES}
COMMAND ${CMD} --copyright ${CMake_BINARY_DIR}/Docs/Copyright.txt
+ --help-full ${CMake_BINARY_DIR}/Docs/cmake.txt
+ --help-full ${CMake_BINARY_DIR}/Docs/cmake.html
+ --help-full ${CMake_BINARY_DIR}/Docs/cmake.1
+ --help-properties ${CMake_BINARY_DIR}/Docs/cmake-properties.txt
+ --help-properties ${CMake_BINARY_DIR}/Docs/cmake-properties.html
+ --help-properties ${CMake_BINARY_DIR}/Docs/cmprops.1
+ --help-modules ${CMake_BINARY_DIR}/Docs/cmake-modules.txt
+ --help-modules ${CMake_BINARY_DIR}/Docs/cmake-modules.html
+ --help-modules ${CMake_BINARY_DIR}/Docs/cmmodules.1
+ --help-commands ${CMake_BINARY_DIR}/Docs/cmake-commands.txt
+ --help-commands ${CMake_BINARY_DIR}/Docs/cmake-commands.html
+ --help-commands ${CMake_BINARY_DIR}/Docs/cmcommands.1
+ --help-compatcommands ${CMake_BINARY_DIR}/Docs/cmake-compatcommands.txt
+ --help-compatcommands ${CMake_BINARY_DIR}/Docs/cmake-compatcommands.html
+ --help-compatcommands ${CMake_BINARY_DIR}/Docs/cmcompat.1
DEPENDS ${target}
MAIN_DEPENDENCY ${CMake_SOURCE_DIR}/Utilities/Doxygen/authors.txt
)
-INSTALL_FILES(${CMAKE_DOC_DIR} FILES ${CMake_BINARY_DIR}/Docs/Copyright.txt )
-SET(DOC_FILES ${DOC_FILES} ${CMake_BINARY_DIR}/Docs/Copyright.txt)
+
+INSTALL_FILES(${CMAKE_MAN_DIR}/man1 FILES
+ ${CMake_BINARY_DIR}/Docs/cmake.1
+ ${CMake_BINARY_DIR}/Docs/cmcommands.1
+ ${CMake_BINARY_DIR}/Docs/cmcompat.1
+ ${CMake_BINARY_DIR}/Docs/cmprops.1
+ ${CMake_BINARY_DIR}/Docs/cmmodules.1)
+
+INSTALL_FILES(${CMAKE_DOC_DIR} FILES ${CMAKE_DOC_FILES} )
# Drive documentation generation.
-ADD_CUSTOM_TARGET(documentation ALL DEPENDS ${DOC_FILES} )
+ADD_CUSTOM_TARGET(documentation ALL DEPENDS ${DOC_FILES} ${CMAKE_DOC_FILES} )