2011-08-11 4 views
5

私は現在、qakeを使ってCMakeにプロジェクトを転送しています。 qmakeを持つバージョンでCMake + Qt:moc/ui出力ディレクトリを定義する

、の.priファイルには、きれいなソースを保ち、指定されたディレクトリにMOC一時ファイルを作成することを許可

MOC_DIR = .moc/$${PLATFORM_NAME} 

がありました。 CMakeで同じことをする方法?

注:CMakeでは、FindQt4.cmakeパッケージとコマンドQT4_WRAP_CPP()を使用します。

+5

一般的に、ソースをきれいに保つために、アウトオブツリービルドを使用します。 http://www.vtk.org/Wiki/CMake_FAQ#Out-of-source_build_treesを参照してください。 – baysmith

答えて

4

baysmithによると、ソースディレクトリをきれいに保つことが目標である場合、実際の解決方法はCMakeの"out-of-source"ビルド機能を使用することです。 Windowsの場合は、「バイナリをビルドする場所」を「ソースコードはどこにあるか」ディレクトリとは異なる新しいディレクトリに設定します。あなたがUnixを使っている場合、それはこのような何かを行く:

cd <source directory> 
mkdir build 
cd build 
cmake .. 
make 

を別のディレクトリ上にCMakeを実行することにより、ビルドファイルのすべてをそのディレクトリに入ります、そして、あなたのソースがきれいなままになります。 (注:ビルドディレクトリはソースディレクトリ内にある必要はありません。

「アウトソース」が機能しない場合は、その他のオプション。私のCMake 2.8でインストールされたQt4Macros.cmakeファイルからわかる内容に基づいて、configパラメータとしてアクセスすることはできません。ここでは、関連する行があります:

SET(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_current_MOC}) 

回避策は、あなたがに構築したいサブフォルダを指定するためのディレクティブを含めるあなたのMOCのすべてを変更することです。

#include "moc/mainwindow.moc" 

は私のビルドディレクトリ内 mocディレクトリを作成した後、何の問題の建物がなかった、と私のMOCファイルを新しいディレクトリにありました。

関連する問題