2014-01-15 167 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指令