Utilisez ce guide pour configurer et compiler le runtime LiteRT avec CMake sur macOS. Les instructions couvrent à la fois les cibles de compilation croisée Android (à l'aide de macOS et Linux comme machine hôte) et les compilations macOS et Linux natives.
Étapes de compilation courantes
Installez CMake 4.0.1 à partir de : https://github.com/kitware/cmake/releases.
Tous les préréglages de compilation s'attendent à ce que vous travailliez à partir de la racine du dépôt :
cd ./litert
Les arborescences de compilation générées se trouvent sous cmake_build*. Les compilations parallèles peuvent être contrôlées via -j avec le nombre de cœurs souhaité.
Saveurs de compilation disponibles
LiteRT est compatible avec les variantes de compilation Release et Debug :
| Préréglage | Plate-forme | Type de build | Répertoire de sortie |
|---|---|---|---|
default |
Ordinateur (macOS/Linux) | Version | cmake_build |
default-debug |
Ordinateur (macOS/Linux) | Déboguer | cmake_build_debug |
android-arm64 |
Android arm64 | Version | cmake_build_android_arm64 |
android-arm64-debug |
Android arm64 | Déboguer | cmake_build_android_arm64_debug |
Les builds Release utilisent -O3 -DNDEBUG pour les binaires de production optimisés.
Les compilations Debug utilisent -O0 -g pour le débogage avec des informations de symbole complètes.
Compilation croisée Android (arm64)
Installez le NDK Android et exportez le chemin d'accès pour que CMake puisse le trouver :
export ANDROID_NDK_HOME=/absolute/path/to/android-ndk-r27Configurer les outils Flatbuffer côté hôte
cmake --preset android-arm64;Configurez la compilation LiteRT Android à l'aide du préréglage fourni et pointez vers les outils FlatBuffers générés :
# 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)"Compiler LiteRT pour Android :
# For Release build: cmake --build cmake_build_android_arm64 -j # For Debug build: cmake --build cmake_build_android_arm64_debug -j
Les artefacts tels que les bibliothèques statiques seront émis dans le répertoire de compilation correspondant (cmake_build_android_arm64 ou cmake_build_android_arm64_debug).
Créer une version pour ordinateur depuis macOS et Linux
Configurez le préréglage par défaut pour les builds Desktop :
# For Release build: cmake --preset default # For Debug build: cmake --preset default-debugCompiler LiteRT :
# For Release build: cmake --build cmake_build -j # For Debug build: cmake --build cmake_build_debug -j
Personnaliser votre cible de compilation
Personnaliser les compilations CMake
Utilisez les options CMake pour contrôler les chaînes d'outils et les fonctionnalités compilées dans vos cibles. Par exemple :
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_COMPILERvous permettent de pointer les outils hôtes d'assistance vers n'importe quelle installation Clang/GCC sans modifierCMakeLists.txt.LITERT_DISABLE_KLEIDIAIpermet de conserver la reproductibilité des builds de bureau x86 en ignorant KleidiAI. Définissez-le surOFFchaque fois que vous souhaitez regrouper le délégué.- Transmettez toujours
-DCMAKE_BUILD_TYPE=Release(ou le préréglage équivalent) lorsque vous avez besoin de l'artefact optimisé. CMake utilise alors-O3 -DNDEBUGpour vous.
Produire des bibliothèques de fournisseurs de taille minimale
Au moment de l'association, activez la suppression des codes inutilisés pour que les bibliothèques de répartition correspondent à la taille de Bazel :
- macOS : ajoutez
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE="-Wl,-dead_strip -dead_strip_dylibs"(et la même chose pourCMAKE_EXE_LINKER_FLAGS_RELEASEsi vous souhaitez supprimer les exécutables). Après la compilation, exécutezstrip -x path/to/libLiteRtDispatch_Qualcomm.dylib. - Linux : ajoutez
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE="-Wl,--gc-sections"et exécutezstrip --strip-unneeded path/to/libLiteRtDispatch_Qualcomm.so(ou faites-en une commandePOST_BUILD).
Ces indicateurs peuvent être placés directement dans les entrées cmake --preset … de CMakePresets.json afin que chaque développeur de votre équipe bénéficie de la même configuration.
Conseils de dépannage
- Si vous modifiez des chaînes d'outils ou des options de configuration majeures, supprimez le répertoire
cmake_build*correspondant, puis réexécutez l'étape de configuration. - Inspectez
CMakeCache.txtdans chaque arborescence de compilation pour les chemins de dépendance résolus.