diff --git a/Help/manual/OPTIONS_HELP.txt b/Help/manual/OPTIONS_HELP.txt index 631dfef38..feeca7dc3 100644 --- a/Help/manual/OPTIONS_HELP.txt +++ b/Help/manual/OPTIONS_HELP.txt @@ -11,6 +11,12 @@ If a file is specified, the version is written into it. |file| +``--help-full []`` + Print all help manuals and exit. + + All manuals are printed in a human-readable text format. + |file| + ``--help-manual []`` Print one help manual and exit. diff --git a/Source/cmDocumentation.cxx b/Source/cmDocumentation.cxx index 9c27fc111..5be4d5c4c 100644 --- a/Source/cmDocumentation.cxx +++ b/Source/cmDocumentation.cxx @@ -30,6 +30,8 @@ static const char *cmDocumentationStandardOptions[][2] = "Print usage information and exit."}, {"--version,-version,/V []", "Print version number and exit."}, + {"--help-full []", + "Print all help manuals and exit."}, {"--help-manual []", "Print one help manual and exit."}, {"--help-manual-list []", @@ -112,6 +114,8 @@ bool cmDocumentation::PrintDocumentation(Type ht, std::ostream& os) { case cmDocumentation::Usage: return this->PrintDocumentationUsage(os); + case cmDocumentation::Full: + return this->PrintHelpFull(os); case cmDocumentation::OneManual: return this->PrintHelpOneManual(os); case cmDocumentation::OneCommand: @@ -364,9 +368,9 @@ bool cmDocumentation::CheckOptions(int argc, const char* const* argv, } else if(strcmp(argv[i], "--help-full") == 0) { + help.HelpType = cmDocumentation::Full; GET_OPT_ARGUMENT(help.Filename); - cmSystemTools::Message("Warning: --help-full no longer supported"); - return true; + this->WarnFormFromFilename(help, result); } else if(strcmp(argv[i], "--help-html") == 0) { @@ -677,6 +681,12 @@ bool cmDocumentation::PrintFiles(std::ostream& os, return found; } +//---------------------------------------------------------------------------- +bool cmDocumentation::PrintHelpFull(std::ostream& os) +{ + return this->PrintFiles(os, "index"); +} + //---------------------------------------------------------------------------- bool cmDocumentation::PrintHelpOneManual(std::ostream& os) { diff --git a/Source/cmDocumentation.h b/Source/cmDocumentation.h index d5a7dd5eb..cc16eb7e2 100644 --- a/Source/cmDocumentation.h +++ b/Source/cmDocumentation.h @@ -102,6 +102,7 @@ private: bool PrintFiles(std::ostream& os, std::string const& pattern); bool PrintVersion(std::ostream& os); + bool PrintHelpFull(std::ostream& os); bool PrintHelpOneManual(std::ostream& os); bool PrintHelpOneCommand(std::ostream& os); bool PrintHelpOneModule(std::ostream& os); diff --git a/Source/cmDocumentationFormatter.h b/Source/cmDocumentationFormatter.h index 118f03d9d..61766b944 100644 --- a/Source/cmDocumentationFormatter.h +++ b/Source/cmDocumentationFormatter.h @@ -26,7 +26,7 @@ public: /** Types of help provided. */ enum Type { - None, Version, Usage, ListManuals, + None, Version, Usage, Full, ListManuals, ListCommands, ListModules, ListProperties, ListVariables, ListPolicies, OneManual, OneCommand, OneModule, OneProperty, OneVariable, OnePolicy, OldCustomModules