2009-08-05 3 views
3

私はcmakeを使ってプロジェクトをビルド、テスト、インストールします。 私のやり方は少し、粗である:マルチパートのcmakeプロジェクトでアウトソースビルドを行う適切な方法

DIR=debug_build && 
rm -fr ./${DIR} && 
mkdir -p ${DIR} && 
cd ${DIR} && 
cmake -D CMAKE_BUILD_TYPE=Debug [email protected] .. && 
make 

私は、少なくともメイクファイルにそれを置くことができると思いますが、それは奇妙にMakefileを使用するようにイマイチ:私は外のソースビルドを取得するには、このようなスクリプトを使用しますcmakeを実行して新しいMakefileを生成し、別のmakeを実行しますか?

これを行う適切な方法は何ですか? cmakeには "cd"の呼び出しを避けるオプションがありますか?

最近私はコンパイル、テスト、および配布を個別に行いたいライブラリを実際に出してしまったので、さらに複雑になりました。私は私のトップCMakeLists.txtにあるすべてのものの重複を避けたい。

cmakeで正しく行うにはどうすればいいですか?

答えて

1

いいえ、CMakeにはこのようなオプションはありません。私は通常、CMake呼び出しを制御するためのラッパーMakefileを持っています。

ここでの主な問題は、Makefileジェネレータが、Visual Studioジェネレータと同じように、makeの実行時に設定を指定することをサポートしていないことです。私は、これに対して提出された機能要求があると思うが、修正するのは非常に侵襲的な手順になるだろう。

+0

makeを使ってcmakeを制御することで、主な問題について詳しく説明できますか? –

+0

ラッパーを使ってcmakeを制御するMakefileは問題ありません。 **複数の構成を構築するために**複数のビルドディレクトリを使用する必要があるという事実を指していました。 – JesperE

1

これは、これを処理する最も一般的な形式のようです。私は通常、これを処理するためにバッチスクリプト(UNIX上のシェルスクリプティングまたはWindows上のバッチファイル)を見たので、./buildを実行するとビルドフォルダが作成され、CDが作成され、cmakeが実行され、ビルドされ、次に実行されます元のフォルダに戻ります。

0

ビルドフォルダーが存在しない場合は自動的に作成されるCMake GUIを使用することもできます。

関連する問題