CPACK_CUSTOM_INSTALL_VARIABLES¶
在 3.21 版本加入.
CPack 变量(通过例如 cpack -D、CPackConfig.cmake 或 CPACK_PROJECT_CONFIG_FILE 脚本设置)在安装脚本中不直接可见。相反,可以在 CPACK_CUSTOM_INSTALL_VARIABLES 变量中传递一组 varName=value 对。在安装时,每个列表项都会导致指定名称(varName)的变量被设置为给定的``value``。对于空的“值”,可以省略“=”。
CPACK_CUSTOM_INSTALL_VARIABLES 允许打包安装在 CPack 运行时受到用户或驱动脚本的影响,而无需重新生成安装脚本。
例子¶
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 $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/large.txt)
endif()
]])
对于上面的示例片段, cpack 将默认运行未设置 ENABLE_COMPRESSION 的安装脚本,从而生成包含未压缩的 large.txt 的包。这可以在调用 cpack 时被覆盖,如下所示:
cpack -D "CPACK_CUSTOM_INSTALL_VARIABLES=ENABLE_COMPRESSION=TRUE"
然后安装脚本将在 ENABLE_COMPRESSION 设置为 TRUE 的情况下运行,结果生成一个包含压缩的 large.txt.xz 的包。