contenttaichino.com永遠のネバーランドCMakeの使い方メモOpenCVをソースからビルドしようとしたらCMakeが使われていたのですが、全然使い方がわからなかったので、少しだけ調べました。CMakeはビルド環境を作る為のツールで、CMakeFiles.txtにビルド条件を記述しておけば、環境に応じてビルド環境を自動生成してくれるというものです。具体的にはLinux上ではMakefileを、Mac上ではXcodeのプロジェクトファイルを、Windows上ではVisualStudioのプロジェクトファイルを自動生成してくれます。クロスプラットフォームなプログラムを書く際に、ソースコード互換さえ取れていれば、わざわざ環境ごとにビルド環境を作らなくても良くなりますので便利だということですね。実際に以下のコードをCMakeを使ってビルドしてみる事にします。endl;}まずCMakeを使う為にCMakeFiles.txtを作成します。以前調べたAutotoolsで言うところのconfigure.acファイルに相当します。書き方を理解してないのですが、以下の三行が必須項目のようです。依存モジュールの確認やヘッダの検索パスの追加、リンクするライブラリの設定などもこのファイルに対して行います。これでCMakeを使う準備はOKなので簡単ですね。Emacsを使っている方はcmake-modeがあるので入れておくと編集が楽です。main.cpp)早速ビルドしてみます。-Gでターゲット環境を指定。Makefilesを指定。無事Makefileができてる。world無事にビルド・実行されましたね。--helpを見れば-Gで使用可能なオプションを一覧できますので色々試してみると良いと思います。cmakeを実行すると中間ファイルがたくさん生成されますが、それを削除する方法がcmakeにはありません。ビルド用のディレクトリを作成しておくと、削除が楽にできて良いと思います。(僕が見つけられてないだけかもです。間違っていたら教えてください。Makefilesを指定して生成されるMakefileにはedit_cacheという便利なアクションが存在します。実行するとビルド時に渡されるオプション一覧が設定値とともに表示され、編集できるようになっています。対象のプロジェクトにはどんなオプションがあって、どう設定すれば良いのかわからないという状態によく陥りますが、この機能を使えば何となく試行錯誤はできるので精神的にはかなり楽ですね。以上、本当に触りだけですがCMakeを使ってみました。クロスプラットフォームなプログラムには非常に興味があるので少しずつ覚えていきたいです。あとネット上に英語も含めてあまり情報がなかったのですが、ここのチュートリアルがわかりやすかったです。