CMake:CPackConfiguration

From KitwarePublic
Revision as of 15:26, 8 September 2011 by Andreas Mohr (talk | contribs) (Important CPACK_INSTALLED_DIRECTORIES update, CPACK_INSTALL_SCRIPT)
Jump to navigationJump to 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.
CPACK_INSTALL_SCRIPT Extra script to install components. Executed in addition to ..._COMMANDS.
CPACK_INSTALLED_DIRECTORIES Extra directories to install. Note that spelling is CPACK_INSTALLED_DIRECTORIES (wrong docs in CPack.cmake)
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