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