Gunakan panduan ini untuk mengonfigurasi dan membangun runtime LiteRT dengan CMake di macOS. Petunjuk ini mencakup target kompilasi silang Android (menggunakan macOS dan Linux sebagai mesin host) serta build macOS dan Linux native.
Langkah-Langkah Build Umum
Instal CMake 4.0.1 dari: https://github.com/kitware/cmake/releases
Semua preset build mengharapkan Anda bekerja dari root repositori:
cd ./litert
Pohon build yang dihasilkan berada di cmake_build*. Build paralel dapat
dikontrol melalui -j dengan jumlah inti yang diinginkan.
Varian Build yang Tersedia
LiteRT mendukung varian build Rilis dan Debug:
| Preset | Platform | Jenis Build | Direktori Output |
|---|---|---|---|
default |
Desktop (macOS/Linux) | Rilis | cmake_build |
default-debug |
Desktop (macOS/Linux) | Debug | cmake_build_debug |
android-arm64 |
Android arm64 | Rilis | cmake_build_android_arm64 |
android-arm64-debug |
Android arm64 | Debug | cmake_build_android_arm64_debug |
Build Rilis menggunakan -O3 -DNDEBUG untuk biner produksi yang dioptimalkan.
Build Debug menggunakan -O0 -g untuk men-debug dengan informasi simbol lengkap.
Kompilasi Silang Android (arm64)
Instal Android NDK dan ekspor jalur agar CMake dapat menemukannya:
export ANDROID_NDK_HOME=/absolute/path/to/android-ndk-r27Mengonfigurasi alat flatbuffer sisi host
cmake --preset android-arm64;Konfigurasi build Android LiteRT menggunakan preset yang disediakan dan arahkan ke alat FlatBuffers yang dihasilkan:
# 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)"Membangun LiteRT untuk Android:
# For Release build: cmake --build cmake_build_android_arm64 -j # For Debug build: cmake --build cmake_build_android_arm64_debug -j
Artefak seperti library statis akan dikeluarkan di direktori build yang sesuai (cmake_build_android_arm64 atau cmake_build_android_arm64_debug).
Build Desktop dari macOS dan Linux
Konfigurasi preset default untuk build Desktop:
# For Release build: cmake --preset default # For Debug build: cmake --preset default-debugMembangun LiteRT:
# For Release build: cmake --build cmake_build -j # For Debug build: cmake --build cmake_build_debug -j
Menyesuaikan target build
Menyesuaikan Build CMake
Gunakan opsi CMake untuk mengontrol toolchain dan fitur mana yang dikompilasi ke dalam target Anda. Mis.:
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_COMPILERmemungkinkan Anda mengarahkan alat host helper ke penginstalan Clang/GCC mana pun tanpa mengeditCMakeLists.txt.LITERT_DISABLE_KLEIDIAImembuat build desktop x86 dapat direproduksi dengan melewati KleidiAI; setel keOFFsetiap kali Anda ingin memaketkan delegasi.- Selalu teruskan
-DCMAKE_BUILD_TYPE=Release(atau preset yang setara) saat Anda memerlukan artefak yang dioptimalkan. Dengan demikian, CMake akan menggunakan-O3 -DNDEBUGuntuk Anda.
Membuat Library Vendor Berukuran Minimum
Pada waktu penautan, aktifkan penghapusan kode yang tidak digunakan agar library pengiriman sesuai dengan ukuran Bazel:
- macOS: tambahkan
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE="-Wl,-dead_strip -dead_strip_dylibs"(dan hal yang sama untukCMAKE_EXE_LINKER_FLAGS_RELEASEjika Anda ingin file yang dapat dieksekusi dihapus). Setelah membangun, jalankanstrip -x path/to/libLiteRtDispatch_Qualcomm.dylib. - Linux: tambahkan
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE="-Wl,--gc-sections"dan jalankanstrip --strip-unneeded path/to/libLiteRtDispatch_Qualcomm.so(atau jadikan perintahPOST_BUILD).
Flag ini dapat langsung berada di entri cmake --preset … dalam
CMakePresets.json sehingga setiap developer di tim Anda mendapatkan konfigurasi yang sama.
Tips Pemecahan Masalah
- Hapus direktori
cmake_build*yang sesuai jika Anda mengubah toolchain atau opsi konfigurasi utama, lalu jalankan kembali langkah konfigurasi. - Periksa
CMakeCache.txtdi dalam setiap pohon build untuk jalur dependensi yang telah diselesaikan.