CPACK_CUSTOM_INSTALL_VARIABLES¶
3.21 版本新增。
CPack 变量(例如通过 cpack -D、CPackConfig.cmake 或 CPACK_PROJECT_CONFIG_FILE 脚本设置)在安装脚本中不可直接见。相反,可以在 CPACK_CUSTOM_INSTALL_VARIABLES 变量中传递一对 varName=value。在安装时,每个列表项将导致一个指定名称(varName)的变量被设置为给定的 value。对于空的 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"
安装脚本将使用设置为 TRUE 的 ENABLE_COMPRESSION 运行,从而生成一个包含压缩的 large.txt.xz 的包。