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
* ``--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.
.. include:: OPTIONS_HELP.txt
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
native tool on their platform.
* ``--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.
.. include:: OPTIONS_HELP.txt
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
warn about other files as well.
* ``--help-command cmd [file]``: Print help for a single command and exit.
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.
.. include:: OPTIONS_HELP.txt
See Also
========

View File

@ -75,79 +75,7 @@ native tool on their platform.
If vendor is not specified on cpack command line (or inside
CMakeLists.txt) thenCPack.cmake defines it with a default value
* ``--help-command cmd [file]``: Print help for a single command and exit.
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.
.. include:: OPTIONS_HELP.txt
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
all labels associated with the test set.
* ``--help-command <cmd> [<file>]``: Show help for a single command and exit.
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.
.. include:: OPTIONS_HELP.txt
See Also
========

View File

@ -55,13 +55,6 @@ static const char * cmDocumentationOptions[][2] =
{"-R <package version>","override/define CPACK_PACKAGE_VERSION"},
{"-B <package directory>","override/define CPACK_PACKAGE_DIRECTORY"},
{"--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}
};
@ -235,6 +228,7 @@ int main (int argc, char *argv[])
// This part is used for cpack documentation lookup as well.
cminst.AddCMakePaths();
doc.SetCMakeRoot(cminst.GetCacheDefinition("CMAKE_ROOT"));
if ( parsed && !help )
{

View File

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

View File

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

View File

@ -25,12 +25,44 @@
//----------------------------------------------------------------------------
static const char *cmDocumentationStandardOptions[][2] =
{
{"--copyright [file]", "Print the CMake copyright and exit."},
{"--help,-help,-usage,-h,-H,/?", "Print usage information and exit."},
{"--help-full [file]", "Print full help and exit."},
{"--help-html [file]", "Print full help in HTML format."},
{"--help-man [file]", "Print full help as a UNIX man page and exit."},
{"--version,-version,/V [file]"},
{"--help,-help,-usage,-h,-H,/?",
"Print usage information and exit."},
{"--version,-version,/V [<f>]",
"Print version number and exit."},
{"--help-manual <man> [<f>]",
"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}
};

View File

@ -84,7 +84,7 @@ public:
cmDocumentationEntry &docs);
/** 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) */
void addCommonStandardDocSections();

View File

@ -79,27 +79,6 @@ static const char * cmDocumentationOptions[][2] =
{"--no-warn-unused-cli", "Don't warn about command line options."},
{"--check-system-vars", "Find problems with variable usage in system "
"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}
};

View File

@ -107,10 +107,6 @@ static const char * cmDocumentationOptions[][2] =
{"--http1.0", "Submit using HTTP 1.0."},
{"--no-compress-output", "Do not compress test output when submitting."},
{"--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}
};
@ -153,6 +149,10 @@ int main (int argc, char *argv[])
doc.addCTestStandardDocSections();
if(doc.CheckOptions(argc, argv))
{
cmake hcm;
hcm.AddCMakePaths();
doc.SetCMakeRoot(hcm.GetCacheDefinition("CMAKE_ROOT"));
// Construct and print requested documentation.
cmCTestScriptHandler* ch =
static_cast<cmCTestScriptHandler*>(inst.GetHandler("script"));