Procházet zdrojové kódy

Help: Explain interaction of cpack(1) and CPack.

In particular, make clear that package/installer generators
are not the makefile generators of the cmake command.

Also insert sections in CPack doc, and capitalize section titles.
Joachim Wuttke (l) před 7 roky
rodič
revize
a26ac919ef
2 změnil soubory, kde provedl 44 přidání a 23 odebrání
  1. 26 14
      Help/manual/cpack.1.rst
  2. 18 9
      Modules/CPack.cmake

+ 26 - 14
Help/manual/cpack.1.rst

@@ -13,12 +13,29 @@ Synopsis
 Description
 Description
 ===========
 ===========
 
 
-The ``cpack`` executable is the CMake packaging program.
-CMake projects use :command:`install` commands to define the contents of
-packages which can be generated in various formats by this tool.
-The :module:`CPack` module greatly simplifies the creation of the input file
-used by ``cpack``, allowing most aspects of the packaging configuration to be
-controlled directly from the CMake project's own ``CMakeLists.txt`` files.
+The ``cpack`` executable is the CMake packaging program.  It generates
+installers and source packages in a variety of formats.
+
+For each installer or package format, ``cpack`` has a specific backend,
+called "generator". A generator is responsible for generating the required
+inputs and invoking the specific package creation tools. These installer
+or package generators are not to be confused with the makefile generators
+of the :manual:`cmake <cmake(1)>` command.
+
+All supported generators are specified in the :manual:`cpack-generators
+<cpack-generators(7)>` manual.  The command ``cpack --help`` prints a
+list of generators supported for the target platform.  Which of them are
+to be used can be selected through the :variable:`CPACK_GENERATOR` variable
+or through the command-line option ``-G``.
+
+The ``cpack`` program is steered by a configuration file written in the
+:manual:`CMake language <cmake-language(7)>`. Unless chosen differently
+through the command-line option ``--config``, the file ``CPackConfig.cmake``
+in the current directory is used.
+
+In the standard CMake workflow, the file ``CPackConfig.cmake`` is generated
+by the :manual:`cmake <cmake(1)>` executable, provided the :module:`CPack`
+module is included by the project's ``CMakeLists.txt`` file.
 
 
 Options
 Options
 =======
 =======
@@ -27,14 +44,9 @@ Options
   ``<generators>`` is a :ref:`semicolon-separated list <CMake Language Lists>`
   ``<generators>`` is a :ref:`semicolon-separated list <CMake Language Lists>`
   of generator names.  ``cpack`` will iterate through this list and produce
   of generator names.  ``cpack`` will iterate through this list and produce
   package(s) in that generator's format according to the details provided in
   package(s) in that generator's format according to the details provided in
-  the ``CPackConfig.cmake`` configuration file.  A generator is responsible for
-  generating the required inputs for a particular package system and invoking
-  that system's package creation tools.  All supported generators are specified
-  in the :manual:`Generators <cpack-generators(7)>` section of the manual and
-  the ``--help`` option lists the generators supported for the target platform.
-
-  If this option is not given, the :variable:`CPACK_GENERATOR` variable
-  determines the default set of generators that will be used.
+  the ``CPackConfig.cmake`` configuration file.  If this option is not given,
+  the :variable:`CPACK_GENERATOR` variable determines the default set of
+  generators that will be used.
 
 
 ``-C <Configuration>``
 ``-C <Configuration>``
   Specify the project configuration to be packaged (e.g. ``Debug``,
   Specify the project configuration to be packaged (e.g. ``Debug``,

+ 18 - 9
Modules/CPack.cmake

@@ -10,20 +10,23 @@ Build binary and source package installers.
 Introduction
 Introduction
 ^^^^^^^^^^^^
 ^^^^^^^^^^^^
 
 
-The CPack module generates binary and source installers in a variety of
-formats using the cpack program.  Inclusion of the CPack module adds
-two new build targets, ``package`` and ``package_source``, which build
-the binary and source installers respectively.  The generated binary
-installers contain everything installed via CMake's :command:`install`
-command (and the deprecated :command:`install_files`,
-:command:`install_programs` and :command:`install_targets` commands).
+The CPack module generates a file ``CPackConfig.cmake`` intended for
+use in a subsequent run of  the :manual:`cpack <cpack(1)>` program
+where it steers the generation of installers or/and source packages.
+
+Inclusion of the CPack module adds two new build targets, ``package``
+and ``package_source``, which build the binary and source installers
+respectively.  The generated binary installers contain everything
+installed via CMake's :command:`install` command (and the deprecated
+commands :command:`install_files`, :command:`install_programs`, and
+:command:`install_targets`).
 
 
 For certain kinds of binary installers (including the graphical
 For certain kinds of binary installers (including the graphical
 installers on macOS and Windows), CPack generates installers that
 installers on macOS and Windows), CPack generates installers that
 allow users to select individual application components to install.
 allow users to select individual application components to install.
 See :module:`CPackComponent` module for further details.
 See :module:`CPackComponent` module for further details.
 
 
-CPack generators
+CPack Generators
 ^^^^^^^^^^^^^^^^
 ^^^^^^^^^^^^^^^^
 
 
 The :variable:`CPACK_GENERATOR` variable has different meanings in different
 The :variable:`CPACK_GENERATOR` variable has different meanings in different
@@ -60,7 +63,7 @@ This is the key: For each generator listed in :variable:`CPACK_GENERATOR` in
 internally to *the one currently being used* and then include the
 internally to *the one currently being used* and then include the
 :variable:`CPACK_PROJECT_CONFIG_FILE`.
 :variable:`CPACK_PROJECT_CONFIG_FILE`.
 
 
-Variables common to all CPack generators
+Variables common to all CPack Generators
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 
 Before including this CPack module in your ``CMakeLists.txt`` file, there
 Before including this CPack module in your ``CMakeLists.txt`` file, there
@@ -250,6 +253,9 @@ installers.  The most commonly-used variables are:
   received by the cpack program.  Defaults to ``FALSE`` for backwards
   received by the cpack program.  Defaults to ``FALSE`` for backwards
   compatibility.
   compatibility.
 
 
+Variables for Source Package Generators
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
 The following CPack variables are specific to source packages, and
 The following CPack variables are specific to source packages, and
 will not affect binary packages:
 will not affect binary packages:
 
 
@@ -284,6 +290,9 @@ will not affect binary packages:
   must be properly escaped), e.g.,
   must be properly escaped), e.g.,
   ``/CVS/;/\\.svn/;\\.swp$;\\.#;/#;.*~;cscope.*``
   ``/CVS/;/\\.svn/;\\.swp$;\\.#;/#;.*~;cscope.*``
 
 
+Variables for Advanced Use
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
 The following variables are for advanced uses of CPack:
 The following variables are for advanced uses of CPack:
 
 
 .. variable:: CPACK_CMAKE_GENERATOR
 .. variable:: CPACK_CMAKE_GENERATOR