CPACK_CUSTOM_INSTALL_VARIABLES — CMake 4.0.2 Documentation (original) (raw)
Added in version 3.21.
CPack variables (set via e.g. cpack -D, CPackConfig.cmake
orCPACK_PROJECT_CONFIG_FILE scripts) are not directly visible in installation scripts. Instead, one can pass a list of varName=value
pairs in the CPACK_CUSTOM_INSTALL_VARIABLES
variable. At install time, each list item will result in a variable of the specified name (varName
) being set to the given value
. The =
can be omitted for an emptyvalue
.
CPACK_CUSTOM_INSTALL_VARIABLES
allows the packaging installation to be influenced by the user or driving script at CPack runtime without having to regenerate the install scripts.
Example¶
install(FILES large.txt DESTINATION data)
install(CODE [[ if(ENABLE_COMPRESSION) # "run-compressor" is a fictional tool that produces # large.txt.xz from large.txt and then removes the input file execute_process(COMMAND run-compressor ENVDESTDIRENV{DESTDIR}ENVDESTDIR{CMAKE_INSTALL_PREFIX}/large.txt) endif() ]])
With the above example snippet, cpack will by default run the installation script with ENABLE_COMPRESSION
unset, resulting in a package containing the uncompressed large.txt
. This can be overridden when invoking cpack like so:
cpack -D "CPACK_CUSTOM_INSTALL_VARIABLES=ENABLE_COMPRESSION=TRUE"
The installation script will then run with ENABLE_COMPRESSION
set toTRUE
, resulting in a package containing the compressed large.txt.xz
instead.