CPACK_CUSTOM_INSTALL_VARIABLES

於 3.21 版本新增。

CPack 變數(透過例如 cpack -DCPackConfig.cmakeCPACK_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