2011-02-08 12 views
7
で特定のディレクトリ構造にバイナリを生成入れたまま

次のように私のプロジェクトのディレクトリ構造は、基本的には次のとおりです。はcmakeのは、資産

ルート/ srcに

ルート/資産

ルート/ライブラリ

Iを現在、CMakeがソースをコンパイルし、ライブラリをコンパイルし、ルートディレクトリからmakeを呼び出してそれらをリンクするように設定されています。

実行ファイルを元のアセットディレクトリに手動で移動して実行する必要があります(これは、アセットのディレクトリ構造を想定どおりにテストするためです)。それが終わったら)。

CMakeにコンパイルされたバイナリをそのディレクトリに自動的に張り付け、アセットをコピーするように指示する方法はありますか?ソースビルドからやっているので、実行可能ファイルを元のプロジェクトソースのassetsフォルダに貼り付けることは奇妙に思えます。

簡潔に言えば、2つの質問:CMakeに資産とコードをコピーさせる方法はありますか?生成された実行ファイルをビルドツリーの特定の場所にコピーする方法はありますか?

助けていただければ幸いです。ありがとうございます!ここで

答えて

9

はあなたのような構造を持つ単純な例です:

  • ルート/ SRC/main.cppに(唯一のソースファイル)
  • ルート/資産(私は実行ファイルがどこへ行きたいか)

ここでcmakeのファイルです:

PROJECT(HelloCMake) 
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${HelloCMake_SOURCE_DIR}/assets) 
add_executable (HelloCMake src/main.cpp) 

私は、Visual Studioを使用して、この反対構築する場合、私はOUTPを取得するにはut/root/assets/debugに置かれています。私は余分な構成フォルダ(デバッグ)を取り除く方法を理解するために掘り下げなければならないでしょう。完璧ではありませんが、うまくいけば正しい軌道に乗ります。さらに良い

編集...:

INSTALL(TARGETS HelloCMake DESTINATION ${HelloCMake_SOURCE_DIR}/assets) 
+0

これが私たちのプロジェクトのために完璧に動作するようです。 "make install"とVSの両方が適切な場所に物を張っているようですね! (ちょっとだけ考えてみると、インストールコマンドを誤って使い慣れているようですが、それはうまくいかないでしょう) – Kozaki

+0

これはCmakeプロジェクトのための金です一定の複雑さ – GameDeveloper