2016-12-21 4 views
2

私は、コードの「インストール」が単にファイルをコピーするだけの単純なものではないプロジェクトを持っています。伝統的なMakefileでは、私はちょうどmake installターゲットを作成して、必要な処理を行う一連のシェルコマンドを実行します。cmakeはインストール先のスクリプトを実行しますか?

しかし、グーグルグーグルでは、これの例はありませんでした(いくつかは近いですが、かなり...私は思う)。だから、基本的には、ターゲットの実行可能ファイルに依存するカスタムコマンドが必要ですが、何も生成せず、 "インストール"を実行するために移植する必要のないスクリプトを実行します。

誰でもこのような例がありますか?

答えて

4

CMakeのinstallコマンドでカスタムスクリプトが可能です。公式ドキュメントを参照してください:install - Custom Installation Logic

install([[SCRIPT <file>] [CODE <code>]] 
     [COMPONENT <component>] [...]) 

SCRIPTフォームは、インストール時に指定したCMakeのスクリプトファイルを呼び出します。スクリプトファイル名が相対パスである場合、現在のソースディレクトリに対して解釈されます。 CODEフォームは、インストール中に指定されたCMakeコードを呼び出します。コードは二重引用符で囲まれた文字列の中で単一の引数として指定されます。たとえば、コード

install(CODE "MESSAGE(\"Sample install message.\")") 

は、インストール中にメッセージを表示します。カスタムシェルスクリプト(または任意のプログラム)を実行するには

execute_processinstall(CODE ...)を兼ね備え:

install(CODE "execute_process(COMMAND my_script.sh)") 
+0

確かに、それは私がcmakeのスクリプトを実行してみましょうよ。しかし、その間に任意のbashコマンドを実行できますか? –

+0

@EvanTeran私は自分の答えを編集しました。 –

関連する問題