Use este guia para configurar e criar o tempo de execução do LiteRT com CMake no macOS. As instruções abrangem destinos de compilação cruzada do Android (usando macOS e Linux como máquina host) e builds nativos do macOS e Linux.
Etapas comuns de build
Instale o CMake 4.0.1 em: https://github.com/kitware/cmake/releases
Todos os presets de build exigem que você trabalhe na raiz do repositório:
cd ./litert
As árvores de build geradas ficam em cmake_build*. As builds paralelas podem ser
controladas via -j com a contagem de núcleos desejada.
Variações de build disponíveis
O LiteRT é compatível com as variantes de build Release e Debug:
| Predefinido | Plataforma | Tipo de build | Diretório de saída |
|---|---|---|---|
default |
Computador (macOS/Linux) | Versão | cmake_build |
default-debug |
Computador (macOS/Linux) | Depurar | cmake_build_debug |
android-arm64 |
Android arm64 | Versão | cmake_build_android_arm64 |
android-arm64-debug |
Android arm64 | Depurar | cmake_build_android_arm64_debug |
Os builds de lançamento usam -O3 -DNDEBUG para binários de produção otimizados.
Os builds de depuração usam -O0 -g para depuração com informações completas de símbolos.
Compilação cruzada do Android (arm64)
Instale o NDK do Android e exporte o caminho para que o CMake possa encontrá-lo:
export ANDROID_NDK_HOME=/absolute/path/to/android-ndk-r27Configurar ferramentas flatbuffer do lado do host
cmake --preset android-arm64;Configure a versão do Android LiteRT usando a predefinição fornecida e aponte para as ferramentas FlatBuffers geradas:
# 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)"Criar o LiteRT para Android:
# For Release build: cmake --build cmake_build_android_arm64 -j # For Debug build: cmake --build cmake_build_android_arm64_debug -j
Artefatos como bibliotecas estáticas serão emitidos no diretório de build correspondente (cmake_build_android_arm64 ou cmake_build_android_arm64_debug).
Build de desktop no macOS e Linux
Configure a predefinição padrão para builds de computador:
# For Release build: cmake --preset default # For Debug build: cmake --preset default-debugCriar o LiteRT:
# For Release build: cmake --build cmake_build -j # For Debug build: cmake --build cmake_build_debug -j
Personalizar o destino do build
Como personalizar builds do CMake
Use opções do CMake para controlar quais toolchains e recursos são compilados nos seus destinos. Por exemplo:
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_COMPILERpermitem apontar as ferramentas de host auxiliar para qualquer instalação do Clang/GCC sem editarCMakeLists.txt.LITERT_DISABLE_KLEIDIAImantém as builds de computador x86 reproduzíveis ao pular KleidiAI. Defina comoOFFsempre que quiser agrupar o delegado.- Sempre transmita
-DCMAKE_BUILD_TYPE=Release(ou o equivalente predefinido) quando precisar do artefato otimizado. Isso faz com que o CMake use-O3 -DNDEBUGpara você.
Produzir bibliotecas de fornecedor de tamanho mínimo
No momento da vinculação, ative a remoção de código morto para que as bibliotecas de envio correspondam ao tamanho do Bazel:
- macOS: adicione
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE="-Wl,-dead_strip -dead_strip_dylibs"(e o mesmo paraCMAKE_EXE_LINKER_FLAGS_RELEASEse quiser que os executáveis sejam removidos). Depois de criar, executestrip -x path/to/libLiteRtDispatch_Qualcomm.dylib. - Linux: adicione
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE="-Wl,--gc-sections"e executestrip --strip-unneeded path/to/libLiteRtDispatch_Qualcomm.soou transforme em um comandoPOST_BUILD.
Essas flags podem ficar diretamente nas entradas cmake --preset … em
CMakePresets.json para que todos os desenvolvedores da sua equipe tenham a mesma configuração.
Dicas para solução de problemas
- Exclua o diretório
cmake_build*correspondente se você mudar as toolchains ou as principais opções de configuração e execute novamente a etapa de configuração. - Inspecione
CMakeCache.txtem cada árvore de build para ver os caminhos de dependência resolvidos.