在CMake中包含NSIS脚本

时间:2017-06-08 16:29:56

标签: cmake windows-installer installer nsis cpack

是否可以包含CMake的NSIS脚本,该脚本将CPack与NSIS一起使用?看起来我只限于几个命令(doc),但有些命令表明有一种方法可以包含整个NSIS脚本,特别是:

CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS,
CPACK_NSIS_EXTRA_INSTALL_COMMANDS,
CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS

但是,当我尝试调用这些命令时:

SET(CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS "!include extra_preinstall.nsh")

什么都没发生。 (不包括/NONFATAL会抛出错误,因此可能无法找到脚本。)

检查基本功能:

SET(CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS "MessageBox MB_OK \\\"Hello world!\\\"")

不对安装程序做任何事情。

为什么没有出现Hello World按钮?为什么找不到脚本文件(即使我把它放在每个级别的CMake层次结构上)?

1 个答案:

答案 0 :(得分:0)

预安装并不意味着它在安装部分之前执行,因此您实际上必须单击“安装”,然后执行该命令。 安装和卸载也是如此。

至于包含外部脚本:包含绝对路径解决所有问题。如果没有绝对路径,可以使用CMake工具轻松获得。