Make --help-* options available from all command-line tools

Make the standard --help-* options available from all command-line
tools.  Drop options that are no longer supported:

  --copyright, --help-full, --help-html, --help-man,
  --help-compatcommands, --help-custom-modules

De-duplicate Help/manual/*.1.rst help options by using an
OPTIONS_HELP.txt file included from each manual.
This commit is contained in:
Brad King 2013-10-16 12:54:52 -04:00
parent 5dde65ac5b
commit 9b212ad01a
13 changed files with 163 additions and 370 deletions

View File

@ -0,0 +1,111 @@
.. |file| replace:: The help is printed to a named <f>ile if given.
* ``--help,-help,-usage,-h,-H,/?``: Print usage information and exit.
Usage describes the basic command line interface and its options.
* ``--version,-version,/V [<f>]``: Show program name/version banner and exit.
If a file is specified, the version is written into it.
|file|
* ``--help-manual <man> [<f>]``: Print one help manual and exit.
The specified manual is printed in a human-readable text format.
|file|
* ``--help-manual-list [<f>]``: List help manuals available and exit.
The list contains all manuals for which help may be obtained by
using the ``--help-manual`` option followed by a manual name.
|file|
* ``--help-command <cmd> [<f>]``: Print help for one command and exit.
The :manual:`cmake-commands(7)` manual entry for ``<cmd>`` is
printed in a human-readable text format.
|file|
* ``--help-command-list [<f>]``: List commands with help available and exit.
The list contains all commands for which help may be obtained by
using the ``--help-command`` option followed by a command name.
|file|
* ``--help-commands [<f>]``: Print cmake-commands manual and exit.
The :manual:`cmake-commands(7)` manual is printed in a
human-readable text format.
|file|
* ``--help-module <mod> [<f>]``: Print help for one module and exit.
The :manual:`cmake-modules(7)` manual entry for ``<mod>`` is printed
in a human-readable text format.
|file|
* ``--help-module-list [<f>]``: List modules with help available and exit.
The list contains all modules for which help may be obtained by
using the ``--help-module`` option followed by a module name.
|file|
* ``--help-modules [<f>]``: Print cmake-modules manual and exit.
The :manual:`cmake-modules(7)` manual is printed in a human-readable
text format.
|file|
* ``--help-policy <cmp> [<f>]``: Print help for one policy and exit.
The :manual:`cmake-policies(7)` manual entry for ``<cmp>`` is
printed in a human-readable text format.
|file|
* ``--help-policy-list [<f>]``: List policies with help available and exit.
The list contains all policies for which help may be obtained by
using the ``--help-policy`` option followed by a policy name.
|file|
* ``--help-policies [<f>]``: Print cmake-policies manual and exit.
The :manual:`cmake-policies(7)` manual is printed in a
human-readable text format.
|file|
* ``--help-property <prop> [<f>]``: Print help for one property and exit.
The :manual:`cmake-properties(7)` manual entries for ``<prop>`` are
printed in a human-readable text format.
|file|
* ``--help-property-list [<f>]``: List properties with help available and exit.
The list contains all properties for which help may be obtained by
using the ``--help-property`` option followed by a property name.
|file|
* ``--help-properties [<f>]``: Print cmake-properties manual and exit.
The :manual:`cmake-properties(7)` manual is printed in a
human-readable text format.
|file|
* ``--help-variable <var> [<f>]``: Print help for one variable and exit.
The :manual:`cmake-variables(7)` manual entry for ``<var>`` is
printed in a human-readable text format.
|file|
* ``--help-variable-list [<f>]``: List variables with help available and exit.
The list contains all variables for which help may be obtained by
using the ``--help-variable`` option followed by a variable name.
|file|
* ``--help-variables [<f>]``: Print cmake-variables manual and exit.
The :manual:`cmake-variables(7)` manual is printed in a
human-readable text format.
|file|

View File

@ -25,34 +25,7 @@ native tool on their platform.
.. include:: OPTIONS_BUILD.txt .. include:: OPTIONS_BUILD.txt
* ``--copyright [file]``: Print the CMake copyright and exit. .. include:: OPTIONS_HELP.txt
If a file is specified, the copyright is written into it.
* ``--help,-help,-usage,-h,-H,/?``: Print usage information and exit.
Usage describes the basic command line interface and its options.
* ``--help-full [file]``: Print full help and exit.
Full help displays most of the documentation provided by the UNIX
man page. It is provided for use on non-UNIX platforms, but is also
convenient if the man page is not installed. If a file is
specified, the help is written into it.
* ``--help-html [file]``: Print full help in HTML format.
This option is used by CMake authors to help produce web pages. If
a file is specified, the help is written into it.
* ``--help-man [file]``: Print full help as a UNIX man page and exit.
This option is used by the cmake build to generate the UNIX man
page. If a file is specified, the help is written into it.
* ``--version,-version,/V [file]``: Show program name/version banner and exit.
If a file is specified, the version is written into it.
See Also See Also
======== ========

View File

@ -23,35 +23,7 @@ in each directory of a source tree with the name CMakeLists.txt.
Users build a project by using CMake to generate a build system for a Users build a project by using CMake to generate a build system for a
native tool on their platform. native tool on their platform.
.. include:: OPTIONS_HELP.txt
* ``--copyright [file]``: Print the CMake copyright and exit.
If a file is specified, the copyright is written into it.
* ``--help,-help,-usage,-h,-H,/?``: Print usage information and exit.
Usage describes the basic command line interface and its options.
* ``--help-full [file]``: Print full help and exit.
Full help displays most of the documentation provided by the UNIX
man page. It is provided for use on non-UNIX platforms, but is also
convenient if the man page is not installed. If a file is
specified, the help is written into it.
* ``--help-html [file]``: Print full help in HTML format.
This option is used by CMake authors to help produce web pages. If
a file is specified, the help is written into it.
* ``--help-man [file]``: Print full help as a UNIX man page and exit.
This option is used by the cmake build to generate the UNIX man
page. If a file is specified, the help is written into it.
* ``--version,-version,/V [file]``: Show program name/version banner and exit.
If a file is specified, the version is written into it.
See Also See Also
======== ========

View File

@ -141,160 +141,7 @@ native tool on their platform.
in CMAKE_SOURCE_DIR and CMAKE_BINARY_DIR. This flag tells CMake to in CMAKE_SOURCE_DIR and CMAKE_BINARY_DIR. This flag tells CMake to
warn about other files as well. warn about other files as well.
* ``--help-command cmd [file]``: Print help for a single command and exit. .. include:: OPTIONS_HELP.txt
Full documentation specific to the given command is displayed. If a
file is specified, the documentation is written into and the output
format is determined depending on the filename suffix. Supported
are man page, HTML, DocBook and plain text.
* ``--help-command-list [file]``: List available listfile commands and exit.
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 documentation is written into and the output
format is determined depending on the filename suffix. Supported
are man page, HTML, DocBook and plain text.
* ``--help-commands [file]``: Print help for all commands and exit.
Full documentation specific for all current commands is displayed.If
a file is specified, the documentation is written into and the
output format is determined depending on the filename suffix.
Supported are man page, HTML, DocBook and plain text.
* ``--help-compatcommands [file]``: Print help for compatibility commands.
Full documentation specific for all compatibility commands is
displayed.If a file is specified, the documentation is written into
and the output format is determined depending on the filename
suffix. Supported are man page, HTML, DocBook and plain text.
* ``--help-module module [file]``: Print help for a single module and exit.
Full documentation specific to the given module is displayed.If a
file is specified, the documentation is written into and the output
format is determined depending on the filename suffix. Supported
are man page, HTML, DocBook and plain text.
* ``--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 documentation is written into and the output
format is determined depending on the filename suffix. Supported
are man page, HTML, DocBook and plain text.
* ``--help-modules [file]``: Print help for all modules and exit.
Full documentation for all modules is displayed. If a file is
specified, the documentation is written into and the output format
is determined depending on the filename suffix. Supported are man
page, HTML, DocBook and plain text.
* ``--help-custom-modules [file]``: Print help for all custom modules and exit.
Full documentation for all custom modules is displayed. If a file
is specified, the documentation is written into and the output
format is determined depending on the filename suffix. Supported
are man page, HTML, DocBook and plain text.
* ``--help-policy cmp [file]``: Print help for a single policy and exit.
Full documentation specific to the given policy is displayed.If a
file is specified, the documentation is written into and the output
format is determined depending on the filename suffix. Supported
are man page, HTML, DocBook and plain text.
* ``--help-policy-list [file]``: List available policies and exit.
The list contains all policies for which help may be obtained by
using the --help-policy argument followed by a policy name. If a
file is specified, the documentation is written into and the output
format is determined depending on the filename suffix. Supported
are man page, HTML, DocBook and plain text.
* ``--help-policies [file]``: Print help for all policies and exit.
Full documentation for all policies is displayed.If a file is
specified, the documentation is written into and the output format
is determined depending on the filename suffix. Supported are man
page, HTML, DocBook and plain text.
* ``--help-property prop [file]``: Print help for a single property and exit.
Full documentation specific to the given property is displayed.If a
file is specified, the documentation is written into and the output
format is determined depending on the filename suffix. Supported
are man page, HTML, DocBook and plain text.
* ``--help-property-list [file]``: List available properties and exit.
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.If a file is
specified, the documentation is written into and the output format
is determined depending on the filename suffix. Supported are man
page, HTML, DocBook and plain text.
* ``--help-properties [file]``: Print help for all properties and exit.
Full documentation for all properties is displayed.If a file is
specified, the documentation is written into and the output format
is determined depending on the filename suffix. Supported are man
page, HTML, DocBook and plain text.
* ``--help-variable var [file]``: Print help for a single variable and exit.
Full documentation specific to the given variable is displayed.If a
file is specified, the documentation is written into and the output
format is determined depending on the filename suffix. Supported
are man page, HTML, DocBook and plain text.
* ``--help-variable-list [file]``: List documented variables and exit.
The list contains all variables for which help may be obtained by
using the --help-variable argument followed by a variable name. If
a file is specified, the help is written into it.If a file is
specified, the documentation is written into and the output format
is determined depending on the filename suffix. Supported are man
page, HTML, DocBook and plain text.
* ``--help-variables [file]``: Print help for all variables and exit.
Full documentation for all variables is displayed.If a file is
specified, the documentation is written into and the output format
is determined depending on the filename suffix. Supported are man
page, HTML, DocBook and plain text.
* ``--copyright [file]``: Print the CMake copyright and exit.
If a file is specified, the copyright is written into it.
* ``--help,-help,-usage,-h,-H,/?``: Print usage information and exit.
Usage describes the basic command line interface and its options.
* ``--help-full [file]``: Print full help and exit.
Full help displays most of the documentation provided by the UNIX
man page. It is provided for use on non-UNIX platforms, but is also
convenient if the man page is not installed. If a file is
specified, the help is written into it.
* ``--help-html [file]``: Print full help in HTML format.
This option is used by CMake authors to help produce web pages. If
a file is specified, the help is written into it.
* ``--help-man [file]``: Print full help as a UNIX man page and exit.
This option is used by the cmake build to generate the UNIX man
page. If a file is specified, the help is written into it.
* ``--version,-version,/V [file]``: Show program name/version banner and exit.
If a file is specified, the version is written into it.
See Also See Also
======== ========

View File

@ -75,79 +75,7 @@ native tool on their platform.
If vendor is not specified on cpack command line (or inside If vendor is not specified on cpack command line (or inside
CMakeLists.txt) thenCPack.cmake defines it with a default value CMakeLists.txt) thenCPack.cmake defines it with a default value
* ``--help-command cmd [file]``: Print help for a single command and exit. .. include:: OPTIONS_HELP.txt
Full documentation specific to the given command is displayed. If a
file is specified, the documentation is written into and the output
format is determined depending on the filename suffix. Supported
are man page, HTML, DocBook and plain text.
* ``--help-command-list [file]``: List available commands and exit.
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 documentation is written into and the output
format is determined depending on the filename suffix. Supported
are man page, HTML, DocBook and plain text.
* ``--help-commands [file]``: Print help for all commands and exit.
Full documentation specific for all current command is displayed.If
a file is specified, the documentation is written into and the
output format is determined depending on the filename suffix.
Supported are man page, HTML, DocBook and plain text.
* ``--help-variable var [file]``: Print help for a single variable and exit.
Full documentation specific to the given variable is displayed.If a
file is specified, the documentation is written into and the output
format is determined depending on the filename suffix. Supported
are man page, HTML, DocBook and plain text.
* ``--help-variable-list [file]``: List documented variables and exit.
The list contains all variables for which help may be obtained by
using the --help-variable argument followed by a variable name. If
a file is specified, the help is written into it.If a file is
specified, the documentation is written into and the output format
is determined depending on the filename suffix. Supported are man
page, HTML, DocBook and plain text.
* ``--help-variables [file]``: Print help for all variables and exit.
Full documentation for all variables is displayed.If a file is
specified, the documentation is written into and the output format
is determined depending on the filename suffix. Supported are man
page, HTML, DocBook and plain text.
* ``--copyright [file]``: Print the CMake copyright and exit.
If a file is specified, the copyright is written into it.
* ``--help,-help,-usage,-h,-H,/?``: Print usage information and exit.
Usage describes the basic command line interface and its options.
* ``--help-full [file]``: Print full help and exit.
Full help displays most of the documentation provided by the UNIX
man page. It is provided for use on non-UNIX platforms, but is also
convenient if the man page is not installed. If a file is
specified, the help is written into it.
* ``--help-html [file]``: Print full help in HTML format.
This option is used by CMake authors to help produce web pages. If
a file is specified, the help is written into it.
* ``--help-man [file]``: Print full help as a UNIX man page and exit.
This option is used by the cmake build to generate the UNIX man
page. If a file is specified, the help is written into it.
* ``--version,-version,/V [file]``: Show program name/version banner and exit.
If a file is specified, the version is written into it.
See Also See Also
======== ========

View File

@ -304,47 +304,7 @@ program will run the tests and report results.
This option will not run any tests, it will simply print the list of This option will not run any tests, it will simply print the list of
all labels associated with the test set. all labels associated with the test set.
* ``--help-command <cmd> [<file>]``: Show help for a single command and exit. .. include:: OPTIONS_HELP.txt
Prints the help for the command to stdout or to the specified file.
* ``--help-command-list [<file>]``: List available commands and exit.
Prints the list of all available listfile commands to stdout or the
specified file.
* ``--help-commands [<file>]``: Print help for all commands and exit.
Prints the help for all commands to stdout or to the specified file.
* ``--copyright [file]``: Print the CMake copyright and exit.
If a file is specified, the copyright is written into it.
* ``--help,-help,-usage,-h,-H,/?``: Print usage information and exit.
Usage describes the basic command line interface and its options.
* ``--help-full [file]``: Print full help and exit.
Full help displays most of the documentation provided by the UNIX
man page. It is provided for use on non-UNIX platforms, but is also
convenient if the man page is not installed. If a file is
specified, the help is written into it.
* ``--help-html [file]``: Print full help in HTML format.
This option is used by CMake authors to help produce web pages. If
a file is specified, the help is written into it.
* ``--help-man [file]``: Print full help as a UNIX man page and exit.
This option is used by the cmake build to generate the UNIX man
page. If a file is specified, the help is written into it.
* ``--version,-version,/V [file]``: Show program name/version banner and exit.
If a file is specified, the version is written into it.
See Also See Also
======== ========

View File

@ -55,13 +55,6 @@ static const char * cmDocumentationOptions[][2] =
{"-R <package version>","override/define CPACK_PACKAGE_VERSION"}, {"-R <package version>","override/define CPACK_PACKAGE_VERSION"},
{"-B <package directory>","override/define CPACK_PACKAGE_DIRECTORY"}, {"-B <package directory>","override/define CPACK_PACKAGE_DIRECTORY"},
{"--vendor <vendor name>","override/define CPACK_PACKAGE_VENDOR"}, {"--vendor <vendor name>","override/define CPACK_PACKAGE_VENDOR"},
{"--help-command cmd [file]", "Print help for a single command and exit."},
{"--help-command-list [file]", "List available commands and exit."},
{"--help-commands [file]", "Print help for all commands and exit."},
{"--help-variable var [file]",
"Print help for a single variable and exit."},
{"--help-variable-list [file]", "List documented variables and exit."},
{"--help-variables [file]", "Print help for all variables and exit."},
{0,0} {0,0}
}; };
@ -235,6 +228,7 @@ int main (int argc, char *argv[])
// This part is used for cpack documentation lookup as well. // This part is used for cpack documentation lookup as well.
cminst.AddCMakePaths(); cminst.AddCMakePaths();
doc.SetCMakeRoot(cminst.GetCacheDefinition("CMAKE_ROOT"));
if ( parsed && !help ) if ( parsed && !help )
{ {

View File

@ -86,6 +86,8 @@ int main(int argc, char** argv)
if(doc.CheckOptions(argc, argv)) if(doc.CheckOptions(argc, argv))
{ {
cmake hcm; cmake hcm;
hcm.AddCMakePaths();
doc.SetCMakeRoot(hcm.GetCacheDefinition("CMAKE_ROOT"));
std::vector<cmDocumentationEntry> generators; std::vector<cmDocumentationEntry> generators;
hcm.GetGeneratorDocumentation(generators); hcm.GetGeneratorDocumentation(generators);
doc.SetName("ccmake"); doc.SetName("ccmake");

View File

@ -58,12 +58,7 @@ int main(int argc, char** argv)
// Construct and print requested documentation. // Construct and print requested documentation.
cmake hcm; cmake hcm;
hcm.AddCMakePaths(); hcm.AddCMakePaths();
// just incase the install is bad avoid a seg fault doc.SetCMakeRoot(hcm.GetCacheDefinition("CMAKE_ROOT"));
const char* root = hcm.GetCacheDefinition("CMAKE_ROOT");
if(root)
{
doc.SetCMakeRoot(root);
}
std::vector<cmDocumentationEntry> generators; std::vector<cmDocumentationEntry> generators;
hcm.GetGeneratorDocumentation(generators); hcm.GetGeneratorDocumentation(generators);

View File

@ -25,12 +25,44 @@
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
static const char *cmDocumentationStandardOptions[][2] = static const char *cmDocumentationStandardOptions[][2] =
{ {
{"--copyright [file]", "Print the CMake copyright and exit."}, {"--help,-help,-usage,-h,-H,/?",
{"--help,-help,-usage,-h,-H,/?", "Print usage information and exit."}, "Print usage information and exit."},
{"--help-full [file]", "Print full help and exit."}, {"--version,-version,/V [<f>]",
{"--help-html [file]", "Print full help in HTML format."}, "Print version number and exit."},
{"--help-man [file]", "Print full help as a UNIX man page and exit."}, {"--help-manual <man> [<f>]",
{"--version,-version,/V [file]"}, "Print one help manual and exit."},
{"--help-manual-list [<f>]",
"List help manuals available and exit."},
{"--help-command <cmd> [<f>]",
"Print help for one command and exit."},
{"--help-command-list [<f>]",
"List commands with help available and exit."},
{"--help-commands [<f>]",
"Print cmake-commands manual and exit."},
{"--help-module <mod> [<f>]",
"Print help for one module and exit."},
{"--help-module-list [<f>]",
"List modules with help available and exit."},
{"--help-modules [<f>]",
"Print cmake-modules manual and exit."},
{"--help-policy <cmp> [<f>]",
"Print help for one policy and exit."},
{"--help-policy-list [<f>]",
"List policies with help available and exit."},
{"--help-policies [<f>]",
"Print cmake-policies manual and exit."},
{"--help-property <prop> [<f>]",
"Print help for one property and exit."},
{"--help-property-list [<f>]",
"List properties with help available and exit."},
{"--help-properties [<f>]",
"Print cmake-properties manual and exit."},
{"--help-variable var [<f>]",
"Print help for one variable and exit."},
{"--help-variable-list [<f>]",
"List variables with help available and exit."},
{"--help-variables [<f>]",
"Print cmake-variables manual and exit."},
{0,0} {0,0}
}; };

View File

@ -84,7 +84,7 @@ public:
cmDocumentationEntry &docs); cmDocumentationEntry &docs);
/** Set cmake root so we can find installed files */ /** Set cmake root so we can find installed files */
void SetCMakeRoot(const char* root) { this->CMakeRoot = root;} void SetCMakeRoot(const char* root) { this->CMakeRoot = root? root:"";}
/** Add common (to all tools) documentation section(s) */ /** Add common (to all tools) documentation section(s) */
void addCommonStandardDocSections(); void addCommonStandardDocSections();

View File

@ -79,27 +79,6 @@ static const char * cmDocumentationOptions[][2] =
{"--no-warn-unused-cli", "Don't warn about command line options."}, {"--no-warn-unused-cli", "Don't warn about command line options."},
{"--check-system-vars", "Find problems with variable usage in system " {"--check-system-vars", "Find problems with variable usage in system "
"files."}, "files."},
{"--help-command cmd [file]", "Print help for a single command and exit."},
{"--help-command-list [file]", "List available listfile commands and exit."},
{"--help-commands [file]", "Print help for all commands and exit."},
{"--help-compatcommands [file]", "Print help for compatibility commands. "},
{"--help-module module [file]", "Print help for a single module and exit."},
{"--help-module-list [file]", "List available modules and exit."},
{"--help-modules [file]", "Print help for all modules and exit."},
{"--help-custom-modules [file]" , "Print help for all custom modules and "
"exit."},
{"--help-policy cmp [file]",
"Print help for a single policy and exit."},
{"--help-policy-list [file]", "List available policies and exit."},
{"--help-policies [file]", "Print help for all policies and exit."},
{"--help-property prop [file]",
"Print help for a single property and exit."},
{"--help-property-list [file]", "List available properties and exit."},
{"--help-properties [file]", "Print help for all properties and exit."},
{"--help-variable var [file]",
"Print help for a single variable and exit."},
{"--help-variable-list [file]", "List documented variables and exit."},
{"--help-variables [file]", "Print help for all variables and exit."},
{0,0} {0,0}
}; };

View File

@ -107,10 +107,6 @@ static const char * cmDocumentationOptions[][2] =
{"--http1.0", "Submit using HTTP 1.0."}, {"--http1.0", "Submit using HTTP 1.0."},
{"--no-compress-output", "Do not compress test output when submitting."}, {"--no-compress-output", "Do not compress test output when submitting."},
{"--print-labels", "Print all available test labels."}, {"--print-labels", "Print all available test labels."},
{"--help-command <cmd> [<file>]",
"Show help for a single command and exit."},
{"--help-command-list [<file>]", "List available commands and exit."},
{"--help-commands [<file>]", "Print help for all commands and exit."},
{0,0} {0,0}
}; };
@ -153,6 +149,10 @@ int main (int argc, char *argv[])
doc.addCTestStandardDocSections(); doc.addCTestStandardDocSections();
if(doc.CheckOptions(argc, argv)) if(doc.CheckOptions(argc, argv))
{ {
cmake hcm;
hcm.AddCMakePaths();
doc.SetCMakeRoot(hcm.GetCacheDefinition("CMAKE_ROOT"));
// Construct and print requested documentation. // Construct and print requested documentation.
cmCTestScriptHandler* ch = cmCTestScriptHandler* ch =
static_cast<cmCTestScriptHandler*>(inst.GetHandler("script")); static_cast<cmCTestScriptHandler*>(inst.GetHandler("script"));