# cpack(1)

## Synopsis

    cpack [<options>]

## Description

The `cpack` executable is the CMake packaging program. CMake projects use `install()` commands to define the contents of packages which can be generated in various formats by this tool. The `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.

## Options

`-G <generators>`
  `<generators>` is a 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. A generator is responsible for generating the required inputs for a particular package system and invoking that system’s package creation tools. Possible generator names are specified in the `Generators` section of the manual and the `--help` option lists the generators supported for the target platform. If this option is not given, the `CPACK_GENERATOR` variable determines the default set of generators that will be used.
`-C <Configuration>`
  Specify the project configuration to be packaged (e.g. `Debug`, `Release`, etc.). 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.
`-D <var>=<value>`
  Set a CPack variable. This will override any value set for `<var>` in the input file read by `cpack`.
`--config <configFile>`
  Specify the configuration file read by `cpack` to provide the packaging details. By default, `CPackConfig.cmake` in the current directory will be used.
`--verbose,-V`
  Run `cpack` with verbose output. This can be used to show more details from the package generation tools and is suitable for project developers.
`--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.
`--trace`
  Put the underlying cmake scripts in trace mode.
`--trace-expand`
  Put the underlying cmake scripts in expanded trace mode.
`-P <packageName>`
  Override/define the value of the `CPACK_PACKAGE_NAME` variable used for packaging. Any value set for this variable in the `CPackConfig.cmake` file will then be ignored.
`-R <packageVersion>`
  Override/define the value of the `CPACK_PACKAGE_VERSION` variable used for packaging. It will override a value set in the `CPackConfig.cmake` file or one automatically computed from `CPACK_PACKAGE_VERSION_MAJOR`, `CPACK_PACKAGE_VERSION_MINOR` and `CPACK_PACKAGE_VERSION_PATCH`.
`-B <packageDirectory>`
  Override/define `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.
`--vendor <vendorName>`
  Override/define `CPACK_PACKAGE_VENDOR`.

`--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. The help is printed to a named <f>ile if given.

`--help-full [<f>]`

  Print all help manuals and exit.

  All manuals are printed in a human-readable text format. The help is printed to a named <f>ile if given.

`--help-manual <man> [<f>]`

  Print one help manual and exit.

  The specified manual is printed in a human-readable text format. The help is printed to a named <f>ile if given.

`--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. The help is printed to a named <f>ile if given.

`--help-command <cmd> [<f>]`

  Print help for one command and exit.

  The `cmake-commands(7)` manual entry for `<cmd>` is printed in a human-readable text format. The help is printed to a named <f>ile if given.

`--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. The help is printed to a named <f>ile if given.

`--help-commands [<f>]`

  Print cmake-commands manual and exit.

  The `cmake-commands(7)` manual is printed in a human-readable text format. The help is printed to a named <f>ile if given.

`--help-module <mod> [<f>]`

  Print help for one module and exit.

  The `cmake-modules(7)` manual entry for `<mod>` is printed in a human-readable text format. The help is printed to a named <f>ile if given.

`--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. The help is printed to a named <f>ile if given.

`--help-modules [<f>]`

  Print cmake-modules manual and exit.

  The `cmake-modules(7)` manual is printed in a human-readable text format. The help is printed to a named <f>ile if given.

`--help-policy <cmp> [<f>]`

  Print help for one policy and exit.

  The `cmake-policies(7)` manual entry for `<cmp>` is printed in a human-readable text format. The help is printed to a named <f>ile if given.

`--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. The help is printed to a named <f>ile if given.

`--help-policies [<f>]`

  Print cmake-policies manual and exit.

  The `cmake-policies(7)` manual is printed in a human-readable text format. The help is printed to a named <f>ile if given.

`--help-property <prop> [<f>]`

  Print help for one property and exit.

  The `cmake-properties(7)` manual entries for `<prop>` are printed in a human-readable text format. The help is printed to a named <f>ile if given.

`--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. The help is printed to a named <f>ile if given.

`--help-properties [<f>]`

  Print cmake-properties manual and exit.

  The `cmake-properties(7)` manual is printed in a human-readable text format. The help is printed to a named <f>ile if given.

`--help-variable <var> [<f>]`

  Print help for one variable and exit.

  The `cmake-variables(7)` manual entry for `<var>` is printed in a human-readable text format. The help is printed to a named <f>ile if given.

`--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. The help is printed to a named <f>ile if given.

`--help-variables [<f>]`

  Print cmake-variables manual and exit.

  The `cmake-variables(7)` manual is printed in a human-readable text format. The help is printed to a named <f>ile if given.

## See Also

The following resources are available to get help using CMake:

Home Page

  https://cmake.org

  The primary starting point for learning about CMake.

Online Documentation and Community Resources

  https://cmake.org/documentation

  Links to available documentation and community resources may be found on this web page.

Mailing List

  https://cmake.org/mailing-lists

  For help and discussion about using cmake, a mailing list is provided at cmake@cmake.org. The list is member-post-only but one may sign up on the CMake web page. Please first read the full documentation at https://cmake.org before posting questions to the list.