4

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 に正しく渡すにはどうすればよいですか?

4

1 に答える 1

7

複数のコマンドを追加するには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)
于 2015-07-03T09:56:09.150 に答える