simplestarの技術ブログ

目的を書いて、思想と試行、結果と考察、そして具体的な手段を記録します。

Unity:OpenCVを直接使う

Unity は Android, iOS などの開発書式を吸収して、同じコードで、共通化したレンダリング処理を簡易に実装できるようにしたため
マルチプラットフォーム展開できるメリット、開発サイクルの短縮が行えることから注目を集め現在のような地位にいます。
そんな Unity のプラグインを作ることは、多くの Unity ユーザーを助けることになります。

今回は OpenCVAndroid 用のライブラリとしてビルドし、Unity から直接使うことを目的に作ります。

…あ、すでにあるー

tips.hecomi.com

こちらをなぞって、要所を記録してみます。

とりあえず読むべきドキュメントはこちら
opencv.org


・NDK ってなんだ?
ここに出てくる NDK というキーワードの意味を確かめました。
Native Development Kit(NDK)、略のもとは推測つくけど、結局なんだったっけ?という程度の知識
これは、Android アプリで C および C++ コードを使用できるようにするツールのセット。
NDK を使用して独自のソースコードをビルドしたり、事前にビルドされた既存のライブラリを活用したりできます。

ということで c++ で書かれた OpenCVAndroid 用にビルドすることができるものです。

・.mk ファイルってなんだ?
make の設定みたいなものか?が最初の印象
make? cmake と違う?
Android.mk それは
Android NDK と C ソースファイルや C++ ソースファイルを結びつける Android.mk ビルドファイル。
の構文は以下
Android.mk  |  Android NDK  |  Android Developers
プロジェクトの jni/ ディレクトリのサブディレクトリにあり、ビルドシステムに対してソースと共有ライブラリを伝える役割を果たします
このファイルは GNU Makefile のごく一部であり、ビルドシステムによって一度以上解析されます。 Android.mk ファイルは、Application.mk、ビルドシステム、環境変数では定義されていない、プロジェクト全体にわたる設定を定義するために使われます。 特定のモジュールのために、プロジェクト全体にわたる設定をオーバーライド

・CMake って何だったっけ?
CMakeとは、同じソースツリーからさまざまなコンパイラー向けにビルドを行えるようにするツール
CMake設定ファイル(CMakeLists.txtファイル)の記述を基に、指定したコンパイラー向けのビルド用ファイルを生成
CUI つまりコマンドラインから cmake で GUI 操作と同じビルド用ファイルの生成が行える

  • Dオプションを使うことで、機能のON/OFFを指定する、これはいっぱい書くね

また、-Gオプションを使うことで、コンパイラー、対象アーキテクチャを指定できる。"Visual Studio 12 Win64"とか
Android でのビルド? それはぴーだよ

OpenCV 作るなら cmake
www.buildinsider.net
コマンドの例
OpenCV 3.3ビルド用バッチファイル(VS2015/64bit) · GitHub

・訳わからん
つまり凹みさんは cmake ではなく ndk のための GNU Make で .so ファイルを出力したってこと?