Usa esta guía para configurar y compilar el tiempo de ejecución de LiteRT con CMake en macOS. Las instrucciones abarcan los destinos de compilación cruzada de Android (con macOS y Linux como máquina host) y las compilaciones nativas de macOS y Linux.
Pasos de compilación comunes
Instala CMake 4.0.1 desde https://github.com/kitware/cmake/releases
Todos los ajustes predeterminados de compilación esperan que trabajes desde la raíz del repositorio:
cd ./litert
Los árboles de compilación generados se encuentran en cmake_build*. Las compilaciones paralelas se pueden controlar a través de -j con el recuento de núcleos deseado.
Tipos de compilación disponibles
LiteRT admite las variantes de compilación Release y Debug:
| Ajuste predeterminado | Plataforma | Tipo de compilación | Directorio de salida |
|---|---|---|---|
default |
Computadoras (macOS/Linux) | Versión | cmake_build |
default-debug |
Computadoras (macOS/Linux) | Depurar | cmake_build_debug |
android-arm64 |
Android arm64 | Versión | cmake_build_android_arm64 |
android-arm64-debug |
Android arm64 | Depurar | cmake_build_android_arm64_debug |
Las compilaciones de versión usan -O3 -DNDEBUG para los archivos binarios de producción optimizados.
Las compilaciones de depuración usan -O0 -g para la depuración con información de símbolos completa.
Compilación cruzada de Android (arm64)
Instala el NDK de Android y exporta la ruta de acceso para que CMake pueda encontrarlo:
export ANDROID_NDK_HOME=/absolute/path/to/android-ndk-r27Configura herramientas de FlatBuffer del host
cmake --preset android-arm64;Configura la compilación de Android de LiteRT con el ajuste predeterminado proporcionado y apunta a las herramientas de FlatBuffers generadas:
# 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)"Compila LiteRT para Android:
# For Release build: cmake --build cmake_build_android_arm64 -j # For Debug build: cmake --build cmake_build_android_arm64_debug -j
Los artefactos, como las bibliotecas estáticas, se emitirán en el directorio de compilación correspondiente (cmake_build_android_arm64 o cmake_build_android_arm64_debug).
Compilación para computadoras de escritorio desde macOS y Linux
Configura el ajuste predeterminado para las compilaciones de escritorio:
# For Release build: cmake --preset default # For Debug build: cmake --preset default-debugCompila LiteRT:
# For Release build: cmake --build cmake_build -j # For Debug build: cmake --build cmake_build_debug -j
Personaliza tu destino de compilación
Cómo personalizar compilaciones de CMake
Usa las opciones de CMake para controlar qué cadenas de herramientas y funciones se compilan en tus destinos. P. ej.:
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_COMPILERte permiten dirigir las herramientas del host auxiliar a cualquier instalación de Clang/GCC sin editarCMakeLists.txt.LITERT_DISABLE_KLEIDIAImantiene reproducibles las compilaciones de escritorio x86 omitiendo KleidiAI; configúralo enOFFcuando quieras incluir el delegado.- Siempre pasa
-DCMAKE_BUILD_TYPE=Release(o el ajuste predeterminado equivalente) cuando necesites el artefacto optimizado. Esto hace que CMake use-O3 -DNDEBUGpor ti.
Cómo producir bibliotecas de proveedores de tamaño mínimo
En el momento de la vinculación, habilita la eliminación de código no utilizado para que las bibliotecas de envío coincidan con el tamaño de Bazel:
- macOS: Agrega
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE="-Wl,-dead_strip -dead_strip_dylibs"(y lo mismo paraCMAKE_EXE_LINKER_FLAGS_RELEASEsi quieres que se quiten los ejecutables). Después de la compilación, ejecutastrip -x path/to/libLiteRtDispatch_Qualcomm.dylib. - Linux: Agrega
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE="-Wl,--gc-sections"y ejecutastrip --strip-unneeded path/to/libLiteRtDispatch_Qualcomm.so(o conviértelo en un comandoPOST_BUILD).
Estas marcas pueden residir directamente en las entradas cmake --preset … de CMakePresets.json, de modo que todos los desarrolladores de tu equipo obtengan la misma configuración.
Sugerencias para solucionar problemas
- Borra el directorio
cmake_build*correspondiente si cambias las cadenas de herramientas o las opciones de configuración principales y, luego, vuelve a ejecutar el paso de configuración. - Inspecciona
CMakeCache.txtdentro de cada árbol de compilación para ver las rutas de dependencia resueltas.