しかし!
Windowsのコマンドラインだけでビルドしたいのである.
というわけで,Android Stuidoがやってくれている作業を何とか再現してみる.
今回ターゲットにしたのは,libogg.Xiph.Org Foundationによって公開されているパテントフリーのマルチメディアコンテナフォーマットを扱うライブラリらしい.ぶっちゃけ,自分が使っているわけではないのでよく知らない.
取り合えず,このライブラリはCMake対応済みなので,最初のとっかかりとして楽だった.
まず,Javaの実行環境を用意する.OpneJDKをダウンロードしておいて,そのbinを含むフォルダへのパスをJAVA_HOMEとして設定しておく.
次に,Android SDK(Android Studioのダウンロードページの下の方にCommand line tools onlyとしてダウンロードリンクがある)をダウンロードし,展開すると,toolsフォルダがあるので,そのtoolsフォルダへのパスをANDROID_SDK_ROOTとする.
ANDROID_SDK_ROOT/binへのパスを環境変数PATHに足しておく.
sdkmanagerが実行できるようになるので,次のように必要なものをインストールする.
> sdkmanager "ndk;21.0.6113669"
すると,ANDROID_SDK_ROOT/ndk/21.0.6113669というフォルダが出来ているので,このフォルダをANDROID_NDK_HOMEとする.
次に,CMakeをインストールする.公式にAndroidに対応したのが3.7以降なので,3.7以降をインストールしておく.できれば最新版が望ましい.インストールの際は,全体で利用できるようにシステム環境変数のPATHにパスを登録しておくと,そのあとのあちこちで問題にならないかもしれない.
また,Ninja(https://ninja-build.org/)をダウンロードしておいて,適当にPATHに登録しておく.
次に,liboggのソースコードをダウンロードし,展開しておく.このフォルダへのパスをOGG_ROOTとする.
さて,ビルド用のフォルダはOGG_ROOTの外に作った方が良い.CMakeが生成する様々なファイルとliboggのファイルの区別がつきやすいからだ.
build/libogg-androidとでもしておこう.このフォルダに移動したら,ようやくCMakeを実行する.
> CMake -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=ninja -DCMAKE_TOOLCHAIN_FILE=ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake -DANDROID_PLATFORM=21 -DANDROID_ABI=arm64-v8a -DANDROID_LD=lld OGG_ROOT
> ninja
これで,libogg.aが出来ているので,あとはコレをAndroid NDKを利用しているアプリのプロジェクトに組み込めば良い.
> ninja
これで,libogg.aが出来ているので,あとはコレをAndroid NDKを利用しているアプリのプロジェクトに組み込めば良い.
-DANDROID云々の部分については,https://developer.android.com/ndk/guides/cmake を参照する.
LDをlldにしているのは好みの問題なのでご自由に.
最適化されたバージョンが欲しければ,-DCMAKE_BUILD_TYPE=Releaseとすれば良い.
0 件のコメント:
コメントを投稿