2012-04-10 11 views
2

現在、私はcmakeを調査してWin32プラットフォームでの自動構築を可能にしています。ビルドしたいすべてのランタイムとライブラリについて、Visual Studio(2008/2010)プロジェクトはすでに存在しています。ビルドの自動化には本当にcmakeが必要ですか?

私はcmakeに出くわしましたが、私が本当に必要なのか分かりません。ドキュメントによれば、cmakeはVSプロジェクトを生成します。 MSBuildを使用します。

プロジェクト自体は既に存在しています(そして、cmdやMSBuildを使ってうまくビルドできます)ので、cmakeを使うには何が必要ですか?ディレクトリ/プロジェクトフォルダのトラバーサルのためだけですか?障害報告を作成する

よろしく、あなたがそれを必要としない ポール

+1

あなたが本当に必要なのは、MSBuildとコードベースだと思います。しかし、あなたはそれを欲しいです。 (cmake、NAntなど)私が実際にやっていることは、MSBuild(とMSDeploy)を呼び出すことですが、個人的にはRakeを使ってビルドスクリプトを作成するのが大好きです。しかし、本格的なプログラミングツール(Ruby言語)として、非常に強力なスクリプトエージェントを作ることができます。 – David

答えて

6

厳密に言えば、にはが必要です。しかし、それはあなたにいくつかの利点を与える行います

  1. CMakeのを使用するための慣用的な方法を、外のソースビルドを使用することができ強制します。疑いがありますが、私は個人的にこれらがソースリポジトリを非常にきれいに保つことを確信しています。

  2. 複数のビジュアルスタジオバージョン(アウトソースビルドを使用)をサポートできます。おそらく、あなたのプロジェクトを他のコンパイラ(MinGW - > Linux GCC)に移植する方が少し楽になるでしょう。

  3. find_packageファイルとconfig.cmakeファイル、および多数の利用可能なfindXXXモジュールを使用することで、CMakeはサードパーティライブラリをビルドチェーンに「インポート」する方がずっと簡単です。

+0

ソース外のビルドは何かですが、手作業でテストして展開すると、 VS IDE自体を使用してビルドします。プロジェクトはすべてそこにあり、ホイールを再開発する必要はありません(またはvcxprojファイルが重複している)。 – PMiller

+1

重複したファイルを保存する必要はありません。 CMakeはvcxprojファイルを置き換えます。私たちのために、CMakeはプロジェクトの設定を調整する中心的な場所を提供します(異なるコンパイラだけでなく、異なるコンパイラのバージョンも)。サイドノート:はい、間違いなくLinux/gccへの移行を非常に簡単にしました。私はそれを調べることを絶対に推奨できます(小さなプロジェクトから始めること)。それは、実行中のシステムを「決して」変更しないと言っていました。 –

5

。 Cmakeは、同じソースコードを複数のプラットフォームやコンパイラで構築できるようにする場合にのみ便利です。あなたが単にmicrosoftスタックを使ってビルドしているのであれば、それは必要ありません。

+0

ありがとう - ディレクトリトラバーサルをどのようにスクリプト化しますか?手動で、または私が定義したものを蹴飛ばし、リターンコードをチェックして適切なレポートを書くだけのツールがありますか? – PMiller

+0

ディレクトリトラバーサルの意味はわかりませんが、CruiseControl.NETやHudsonのような主要な継続的統合プラットフォームを使用します。つまり、MSBuildとIDEでビルドできると言ったという事実を利用して、現在見ているものすべてと将来の他のもののためのプラットフォームを手に入れなければなりません。ソースコードを取得し、それをソリューションファイルまたはプロジェクトファイルにポイントする方法を教えてください。 – Alex

+0

私は、1つ以上のVSプロジェクトが存在するフォルダのセットを定義して構築し、出力/戻りコードを収集して提示するだけでよいことを意味します。ハドソンは少しJavaに焦点を当て、CruiseControl.NETを見ていきます。 – PMiller

関連する問題