2017-06-08 8 views
0

CPackをNSISと共に使用するCMakeのNSISスクリプトを含めることは可能ですか?私が唯一のいくつかのコマンド(doc)に制限さだと表示されますが、いくつかのコマンドは、全体のNSISスクリプトを含める方法があることを示唆している、particulary:CMakeに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のすべての階層に置いても)。

+0

私はちょうど私が必要な機能を追加するCMake付属のNSISスクリプトを変更しました。 – drescherjm

+0

それを見て、私の感情を確認しました。外部のNSISスクリプトを含める方法がなければならないと思います。 – ViliX64

+0

置換NSISスクリプトの名前を 'NSIS.template.in'とし、' list(APPEND CMAKE_MODULE_PATH $ {PROJECT_SOURCE_DIR}/CMake/External/Modules) 'コマンドで追加したローカルモジュールフォルダに置きます。 – drescherjm

答えて

0

Preinstallは、インストールセクションの前に実行されるわけではないので、実際には「install」をクリックしてからコマンドを実行する必要があります。 インストールとアンインストールについても同じことが言えます。

外部スクリプトを含める場合:絶対パスを含めてすべてを解決します。絶対パスが利用できない場合は、CMakeツールを使用して簡単に取得できます。

関連する問題