CMakeでiOS用のframeworkを作ってみる

先日カッコいいと書いたBlitzを、頑張ってiOS用にビルドしたという話です。

元々Blitzに限らずC/C++で書かれたライブラリがiOSに対応している事はまれで、あーiOSに対応してたら使いたいのになーというシーンはちょくちょくあります。なんですけど、.frameworkを作ろうとすると.xcodeprojを作ってどうのこうのという話になりがちで、普段Autotoolsでビルドしているソースツリーに特定のしかもプロプリエタリなIDEのプロジェクトファイルを追加するとか、醜すぎて誰もやりたくないわけです。

ところが最近OpenCVがiOS用の.frameworkのアーカイブを別途配布しているのを知りまして、どうやってビルドしてんのかなと見てみると、CMakeで一旦xcodeprojを吐いてから、xcodebuildという流れになっていて、それをPythonスクリプトで纏めて、ワンコマンドで.frameworkが構築出来るようになっていました。

まぁiOS用のCMakeLists.txtは必要だし、結局xcodebuild叩いてるやんとかはあるんですけど、プロジェクトファイルを管理せずに済んでいるので、ソースの構成が変わるたびにプロジェクトファイルを編集するという残念な作業からは解放されているので、なるほどなと思いました。

というわけで、真似してBlitzのソースツリーから.frameworkを作ってみようという話ですね。

Continue reading “CMakeでiOS用のframeworkを作ってみる”

iPhoneでOpenCV(2.2以降)を使う

以前も同じ内容を書いたのですが、OpenCVの開発は大変活発で最新版を使おうと思ったら色々つまずいたので再度エントリを書いておきます。前回はniwさんのエントリをなぞっただけだったので、今回は自力でライブラリのビルドをしました。手元の環境はSnowLeopard + iOS4.2 + OpenCVのリポジトリヘッド(2.2以降)です。

Continue reading “iPhoneでOpenCV(2.2以降)を使う”

CMakeの使い方メモ

OpenCVをソースからビルドしようとしたらCMakeが使われていたのですが、全然使い方がわからなかったので、少しだけ調べました。CMakeはビルド環境を作る為のツールで、CMakeFiles.txtにビルド条件を記述しておけば、環境に応じてビルド環境を自動生成してくれるというものです。具体的にはLinux上ではMakefileを、Mac上ではXcodeのプロジェクトファイルを、Windows上ではVisualStudioのプロジェクトファイルを自動生成してくれます。

クロスプラットフォームなプログラムを書く際に、ソースコード互換さえ取れていれば、わざわざ環境ごとにビルド環境を作らなくても良くなりますので便利だということですね。

Continue reading “CMakeの使い方メモ”