2014-01-15 196 views
0

我想使用CMAKE和CPACK定製NSIS安裝程序。 特別我想在生成的project.nsi中包含一個外部腳本。使用CPACK定製NSIS安裝程序

喜歡的東西:

!include "@[email protected]\@[email protected]" 

要做到這一點我下面圖示例:http://www.cmake.org/Wiki/CMake:CPackNSISAdvancedTips

我抄模板腳本文件(NSIS.template.in),並添加所需的命令。 我現在需要配置兩個變量「@ SCRIPT_PATH @和@ SCRIPT_NAME @相應。

我試圖讓它們像標準的CMake變量

SET(SCRIPT_PATH "somePath") 
SET(SCRIPT_NAME "someName") 

但是模板變量簡單地通過CPACK

留空

任何線索?

回答

0

我已經在M加入找到了有效的解決方案。

開始艾因NSIS.template.in要插入新的命令,比如一個佔位符:

@[email protected] 

然後,你需要配置包含將傳遞到CPACK構建選項模板文件。

的CPackOptions.cmake包含以下內容:

SET(NSIS_ADDITIONAL_SCRIPT ${NSIS_ADDITIONAL_SCRIPT}) 

然後在你的CMake的腳本,包括CPACK之前,你需要設置NSIS_ADDITIONAL_SCRIPT變量(路徑,纔能有正確的設置上窗口反斜槓返工系統)

SET(scriptPath "[path to the script location]") 
FILE(TO_NATIVE_PATH ${scriptPath} scriptPath) 
STRING(REPLACE "\\" "\\\\" scriptPath ${scriptPath} } 

,最後配置CPackOption.cmake文件(注意正確的號碼斜線和昏迷)

如果你做的一切正確:

  • 通過配置和生成CMake的腳本,你會發現在你的項目生成文件夾中的文件CPackOptions.cmake。
  • 此配置文件將被CPACK用於填充添加到NSIStemplate.in中的變量。
  • 最終生成的project.nsi將包含附加的!include指令