gpt4 book ai didi

cmake - CPack:如何执行多个 CPACK_NSIS_EXTRA_INSTALL_COMMANDS?

转载 作者:行者123 更新时间:2023-12-04 23:44:51 26 4
gpt4 key购买 nike

我正在使用 CMake 2.8.11.2、CPack 和 NSIS 编写安装程序。我到了需要调用包含的子安装程序(如 MSVCR)的地步。这是我的 CMakeLists.txt 的样子:

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 文件包含以下(单)行
ExecWait ./tmp/vcredist_x64.exe; ExecWait ./tmp/some-other-installer.exe; RMDir /r ./tmp/

这会导致在生成包时出现错误“ExecWait 需要 1-2 个参数,得到 6”。

如何正确地将多个额外命令传递给 NSIS?

最佳答案

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

list ( APPEND CPACK_NSIS_EXTRA_INSTALL_COMMANDS ...
...
string (REPLACE ";" "\n" CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}")
include(CPack)

关于cmake - CPack:如何执行多个 CPACK_NSIS_EXTRA_INSTALL_COMMANDS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31203086/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com