.. cmake-manual-description: CPack Command-Line Reference cpack(1) ******** Synopsis ======== .. parsed-literal:: cpack [] Description =========== 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 ` command. All supported generators are specified in the :manual:`cpack-generators ` 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 :option:`-G `. The **cpack** program is steered by a configuration file written in the :manual:`CMake language `. Unless chosen differently through the command-line option :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 ` executable, provided the :module:`CPack` module is included by the project's ``CMakeLists.txt`` file. Options ======= .. program:: cpack .. option:: -G ```` is a :ref:`semicolon-separated list ` of generator names. ``cpack`` will iterate through this list and produce package(s) in that generator's format according to the details provided in 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. .. option:: -C Specify the project configuration(s) to be packaged (e.g. ``Debug``, ``Release``, etc.), where ```` is a :ref:`semicolon-separated list `. When the CMake project uses a multi-configuration generator such as Xcode or Visual Studio, this option is needed to tell ``cpack`` which built executables to include in the package. The user is responsible for ensuring that the configuration(s) listed have already been built before invoking ``cpack``. .. option:: -D = Set a CPack variable. This will override any value set for ```` in the input file read by ``cpack``. .. option:: --config Specify the configuration file read by ``cpack`` to provide the packaging details. By default, ``CPackConfig.cmake`` in the current directory will be used. .. option:: -V, --verbose Run ``cpack`` with verbose output. This can be used to show more details from the package generation tools and is suitable for project developers. .. option:: --debug Run ``cpack`` with debug output. This option is intended mainly for the developers of ``cpack`` itself and is not normally needed by project developers. .. option:: --trace Put the underlying cmake scripts in trace mode. .. option:: --trace-expand Put the underlying cmake scripts in expanded trace mode. .. option:: -P Override/define the value of the :variable:`CPACK_PACKAGE_NAME` variable used for packaging. Any value set for this variable in the ``CPackConfig.cmake`` file will then be ignored. .. option:: -R Override/define the value of the :variable:`CPACK_PACKAGE_VERSION` variable used for packaging. It will override a value set in the ``CPackConfig.cmake`` file or one automatically computed from :variable:`CPACK_PACKAGE_VERSION_MAJOR`, :variable:`CPACK_PACKAGE_VERSION_MINOR` and :variable:`CPACK_PACKAGE_VERSION_PATCH`. .. option:: -B Override/define :variable:`CPACK_PACKAGE_DIRECTORY`, which controls the directory where CPack will perform its packaging work. The resultant package(s) will be created at this location by default and a ``_CPack_Packages`` subdirectory will also be created below this directory to use as a working area during package creation. .. option:: --vendor Override/define :variable:`CPACK_PACKAGE_VENDOR`. .. option:: --preset Use a preset from :manual:`cmake-presets(7)`. .. option:: --list-presets List presets from :manual:`cmake-presets(7)`. .. include:: OPTIONS_HELP.txt See Also ======== .. include:: LINKS.txt