このガイドでは、macOS で CMake を使用して LiteRT ランタイムを構成してビルドする方法について説明します。この手順では、Android クロス コンパイル ターゲット(macOS と Linux をホストマシンとして使用)とネイティブ macOS および Linux ビルドの両方について説明します。
一般的なビルドステップ
https://github.com/kitware/cmake/releases から CMake 4.0.1 をインストールします。
すべてのビルド プリセットは、リポジトリのルートから作業することを想定しています。
cd ./litert
生成されたビルドツリーは cmake_build* にあります。並列ビルドは、必要なコア数で -j を使用して制御できます。
利用可能なビルド フレーバー
LiteRT は、Release と Debug の両方のビルドフレーバーをサポートしています。
| プリセット | プラットフォーム | ビルドタイプ | 出力ディレクトリ |
|---|---|---|---|
default |
パソコン(macOS/Linux) | リリース | cmake_build |
default-debug |
パソコン(macOS/Linux) | デバッグ | cmake_build_debug |
android-arm64 |
Android arm64 | リリース | cmake_build_android_arm64 |
android-arm64-debug |
Android arm64 | デバッグ | cmake_build_android_arm64_debug |
リリースビルドでは、最適化された本番環境バイナリに -O3 -DNDEBUG を使用します。デバッグ ビルドは、完全なシンボル情報を使用してデバッグするために -O0 -g を使用します。
Android(arm64)のクロス コンパイル
Android NDK をインストールし、CMake が見つけられるようにパスをエクスポートします。
export ANDROID_NDK_HOME=/absolute/path/to/android-ndk-r27ホスト側の flatbuffer ツールを構成する
cmake --preset android-arm64;提供されたプリセットを使用して LiteRT Android ビルドを構成し、生成された FlatBuffers ツールを指定します。
# For Release build: cmake --preset android-arm64 \ -DTFLITE_HOST_TOOLS_DIR="$(cd ../host_flatc_build/_deps/flatbuffers-build && pwd)" # For Debug build: cmake --preset android-arm64-debug \ -DTFLITE_HOST_TOOLS_DIR="$(cd ../host_flatc_build/_deps/flatbuffers-build && pwd)"Android 用の LiteRT をビルドします。
# For Release build: cmake --build cmake_build_android_arm64 -j # For Debug build: cmake --build cmake_build_android_arm64_debug -j
静的ライブラリなどのアーティファクトは、対応するビルド ディレクトリ(cmake_build_android_arm64 または cmake_build_android_arm64_debug)に出力されます。
macOS と Linux からのデスクトップ ビルド
デスクトップ ビルドのデフォルトのプリセットを構成します。
# For Release build: cmake --preset default # For Debug build: cmake --preset default-debugLiteRT をビルドします。
# For Release build: cmake --build cmake_build -j # For Debug build: cmake --build cmake_build_debug -j
ビルド ターゲットをカスタマイズする
CMake ビルドをカスタマイズする
CMake オプションを使用して、ターゲットにコンパイルされるツールチェーンと機能を制御します。例:
cmake -S . -B build-release \
-DCMAKE_BUILD_TYPE=Release \
-DLITERT_AUTO_BUILD_TFLITE=ON \
-DLITERT_ENABLE_GPU=OFF \
-DLITERT_ENABLE_NPU=OFF \
-DLITERT_DISABLE_KLEIDIAI=ON \
-DLITERT_HOST_C_COMPILER=/usr/bin/clang \
-DLITERT_HOST_CXX_COMPILER=/usr/bin/clang++
cmake --build build-release --target dispatch_api_Qualcomm_so -j8
LITERT_HOST_C_COMPILER/LITERT_HOST_CXX_COMPILERを使用すると、CMakeLists.txtを編集せずに、ヘルパー ホストツールを任意の Clang/GCC インストールに指定できます。LITERT_DISABLE_KLEIDIAIは、KleidiAI をスキップすることで x86 デスクトップ ビルドの再現性を維持します。デリゲートをバンドルする場合は、OFFに設定します。- 最適化されたアーティファクトが必要な場合は、常に
-DCMAKE_BUILD_TYPE=Release(または同等のプリセット)を渡します。これにより、CMake は-O3 -DNDEBUGを使用します。
最小サイズのベンダー ライブラリを生成する
リンク時にデッド ストリッピングを有効にして、ディスパッチ ライブラリのサイズを Bazel のサイズと一致させます。
- macOS:
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE="-Wl,-dead_strip -dead_strip_dylibs"を追加します(実行可能ファイルをストリップする場合はCMAKE_EXE_LINKER_FLAGS_RELEASEも追加します)。ビルド後、strip -x path/to/libLiteRtDispatch_Qualcomm.dylibを実行します。 - Linux:
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE="-Wl,--gc-sections"を追加してstrip --strip-unneeded path/to/libLiteRtDispatch_Qualcomm.soを実行します(またはPOST_BUILDコマンドにします)。
これらのフラグは CMakePresets.json の cmake --preset … エントリに直接配置できるため、チームのすべてのデベロッパーが同じ構成を取得できます。
トラブルシューティングのヒント
- ツールチェーンまたは主要な構成オプションを変更した場合は、対応する
cmake_build*ディレクトリを削除してから、構成手順を再実行します。 - 各ビルドツリー内の
CMakeCache.txtを調べて、解決された依存関係パスを確認します。