首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CPack:如何执行多个CPACK_NSIS_EXTRA_INSTALL_COMMANDS?

CPack:如何执行多个CPACK_NSIS_EXTRA_INSTALL_COMMANDS?
EN

Stack Overflow用户
提问于 2015-07-03 09:18:50
回答 1查看 1.9K关注 0票数 4

我正在用CMake 2.8.11.2、CPack和NSIS编写一个安装程序。我已经到了需要调用包括MSVCR这样的子安装程序的地步。下面是我的CMakeLists.txt的样子:

代码语言:javascript
复制
set(CPACK_GENERATOR NSIS)
list ( APPEND CPACK_NSIS_EXTRA_INSTALL_COMMANDS " ExecWait ./tmp/vcredist_x64.exe")
list ( APPEND CPACK_NSIS_EXTRA_INSTALL_COMMANDS " ExecWait ./tmp/some-other-installer.exe")
list ( APPEND CPACK_NSIS_EXTRA_INSTALL_COMMANDS " RMDir /r ./tmp/")
INCLUDE(CPack)

但是,生成的.nsi文件包含以下(单行)行

代码语言:javascript
复制
ExecWait ./tmp/vcredist_x64.exe; ExecWait ./tmp/some-other-installer.exe; RMDir /r ./tmp/

这将导致在生成包时出现一个错误"ExecWait需要1-2个参数,got 6“。

如何正确地将多个附加命令传递给NSIS?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-03 09:56:09

要添加多个命令,需要将CPACK_NSIS_EXTRA_INSTALL_COMMANDS设置为多行字符串:

代码语言:javascript
复制
list ( APPEND CPACK_NSIS_EXTRA_INSTALL_COMMANDS ...
...
string (REPLACE ";" "\n" CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}")
include(CPack)
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31203086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档