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"
安裝腳本將接著執行,並將 ENABLE_COMPRESSION
設定為 TRUE
,導致封裝中包含壓縮過的 large.txt.xz
。