CMake:CPackConfiguration

From KitwarePublic
Revision as of 12:27, 8 September 2011 by Andreas Mohr (Talk | contribs)

Jump to: navigation, search

The CPack behavior is controlled by the value of CPACK_XXXX variables. The value of thoses variables should usually be set inside CMakeLists.txt before the inclusion INCLUDE(CPack). Some variables may be set/overriden on the command line when invoking CPack, like in:

  cpack -D CPACK_MONOLITHIC_INSTALL=1 -G NSIS

The variables described hereafter are the generic ones used to adjust the behaviour of any CPack generator. However, some CPack generator have extra specific variables (CPACK_<GENERATOR-NAME>_XXXX) that may be used too control their specific features. If you seek CPack generators specific settings please go there: CPackPackageGenerators

Basic settings

Variable Name Description Example
CPACK_GENERATOR CPack generator to be used STGZ;TGZ;TZ
CPACK_INCLUDE_TOPLEVEL_DIRECTORY Controls whether CPack adds a top-level directory, usually of the form ProjectName-Version-OS, to the top of package tree. 0 to disable, 1 to enable
CPACK_INSTALL_CMAKE_PROJECTS List of four values: Build directory, Project Name, Project Component, Directory in the package /home/andy/vtk/CMake-bin;CMake;ALL;/
CPACK_PACKAGE_DESCRIPTION_FILE File used as a description of a project /path/to/project/ReadMe.txt
CPACK_PACKAGE_DESCRIPTION_SUMMARY Description summary of a project CMake is a build tool
CPACK_PACKAGE_EXECUTABLES List of pairs of executables and labels. Used by the NSIS generator to create Start Menu shortcuts. ccmake;CMake
CPACK_PACKAGE_FILE_NAME Package file name without extension. Also a directory of installer cmake-2.5.0-Linux-i686
CPACK_PACKAGE_INSTALL_DIRECTORY Installation directory on the target system CMake 2.5
CPACK_PACKAGE_INSTALL_REGISTRY_KEY Registry key used when installing this project CMake 2.5.0
CPACK_PACKAGE_NAME Package name, defaults to the project name. CMake
CPACK_PACKAGE_VENDOR Package vendor name Kitware
CPACK_PACKAGE_VERSION_MAJOR Package Major Version 2
CPACK_PACKAGE_VERSION_MINOR Package Minor Version 5
CPACK_PACKAGE_VERSION_PATCH Package Patch Version 0
CPACK_PROJECT_CONFIG_FILE File included at cpack time, once per generator after setting CPACK_GENERATOR to the actual generator being used; allows per-generator setting of CPACK_* variables at cpack time. ${PROJECT_BINARY_DIR}/CPackOptions.cmake
CPACK_SOURCE_GENERATOR List of generators used for the source package TGZ;TZ
CPACK_SOURCE_IGNORE_FILES Pattern of files in the source tree that won't be packaged /CVS/;/\\.svn/;\\.swp$;\\.#;/#;.*~;cscope.*
CPACK_SOURCE_PACKAGE_FILE_NAME Name of the source package cmake-2.5.0
CPACK_SOURCE_STRIP_FILES List of files in the source tree that will be stripped. Starting with CMake 2.6.0 CPACK_SOURCE_STRIP_FILES will be a boolean variable which enables stripping of all files (a list of files evaluates to TRUE in CMake, so this change is compatible).
CPACK_STRIP_FILES List of files to be stripped. Starting with CMake 2.6.0 CPACK_STRIP_FILES will be a boolean variable which enables stripping of all files (a list of files evaluates to TRUE in CMake, so this change is compatible). bin/ccmake;bin/cmake;bin/cpack;bin/ctest
CPACK_SYSTEM_NAME System name, defaults to the value of ${CMAKE_SYSTEM_NAME}. Linux-i686

Advanced settings

Variable Name Description Example
CPACK_CMAKE_GENERATOR What CMake generator should be used if the project is CMake project. Defaults to the value of CMAKE_GENERATOR. Unix Makefiles
CPACK_RESOURCE_FILE_LICENSE License file for the project, used by the STGZ, NSIS, and PackageMaker generators. /home/andy/vtk/CMake/Copyright.txt
CPACK_RESOURCE_FILE_README ReadMe file for the project, used by PackageMaker generator. /home/andy/vtk/CMake/Templates/CPack.GenericDescription.txt
CPACK_RESOURCE_FILE_WELCOME Welcome file for the project, used by PackageMaker generator. /home/andy/vtk/CMake/Templates/CPack.GenericWelcome.txt
CPACK_PACKAGE_VERSION Package full version, used internally. 2.5.0
CPACK_TOPLEVEL_TAG Directory for the installed files. Linux-i686
CPACK_INSTALL_COMMANDS Extra commands to install components. Executed in addition to ..._SCRIPT and CPACK_INSTALLED_DIRECTORIES.
CPACK_INSTALL_SCRIPT Extra script to install components. Executed in addition to related variables.
CPACK_INSTALLED_DIRECTORIES Extra directories to install. Note that spelling is CPACK_INSTALLED_DIRECTORIES (wrong docs in CPack.cmake). Executed in addition to related variables.
CPACK_MONOLITHIC_INSTALL When set disables the component-based installer.
CPACK_PACKAGING_INSTALL_PREFIX Sets the default root that the generated package installs into, '/usr' is the default for the debian and redhat generators /usr/local
CPACK_OUTPUT_FILE_PREFIX Available in CMake >= 2.8.3 only (for older versions a find . -maxdepth 1 -type f -ctime.... might prove useful to gather the set of packages to be moved away). Can be used to specify the destination output prefix directory that the final package will be stored in. Since CPack will combine this argument with a trailing slash, it unfortunately cannot be used to specify a filename-only prefix part. /tmp/my_cpack_generated_packages