Udhëzime për Ndërtimin e LiteRT CMake

Përdorni këtë udhëzues për të konfiguruar dhe ndërtuar kohën e ekzekutimit LiteRT me CMake në macOS. Udhëzimet mbulojnë si objektivat e përpilimit të kryqëzuar të Android (duke përdorur macOS dhe Linux si makinë pritëse) ashtu edhe versionet native të macOS dhe Linux.

Hapat e zakonshëm të ndërtimit

Instaloni CMake 4.0.1 nga: https://github.com/kitware/cmake/releases

Të gjitha paracaktimet e ndërtimit presin që ju të punoni nga rrënja e repozitorit:

cd ./litert

Pemët e gjeneruara të ndërtimit ndodhen nën cmake_build* . Ndërtimet paralele mund të kontrollohen nëpërmjet -j me numrin e dëshiruar të bërthamave.

Shije Ndërtimi të Disponueshme

LiteRT mbështet të dyja versionet e ndërtimit, Release dhe Debug :

Paracaktuar Platforma Lloji i Ndërtimit Drejtoria e Daljes
default Desktop (macOS/Linux) Publikim cmake_build
default-debug Desktop (macOS/Linux) Debug cmake_build_debug
android-arm64 Android arm64 Publikim cmake_build_android_arm64
android-arm64-debug Android arm64 Debug cmake_build_android_arm64_debug

Ndërtimet e versioneve përdorin -O3 -DNDEBUG për binarët e prodhimit të optimizuar. Ndërtimet e debugimit përdorin -O0 -g për debugim me informacion të plotë të simboleve.

Android (arm64) Kryqëzim-Përmbledhje

  1. Instaloni NDK-në Android dhe eksportoni shtegun në mënyrë që CMake ta gjejë atë:

    export ANDROID_NDK_HOME=/absolute/path/to/android-ndk-r27
    
  2. Konfiguro mjetet flatbuffer në anën e hostit

    cmake --preset android-arm64;
    
  3. Konfiguroni ndërtimin LiteRT Android duke përdorur paracaktimin e dhënë dhe drejtohuni te mjetet e gjeneruara të 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)"
    
  4. Ndërtoni LiteRT për Android:

    # For Release build:
    cmake --build cmake_build_android_arm64 -j
    
    # For Debug build:
    cmake --build cmake_build_android_arm64_debug -j
    

Artefaktet si bibliotekat statike do të emetohen nën direktorinë përkatëse të ndërtimit ( cmake_build_android_arm64 ose cmake_build_android_arm64_debug ).

Ndërtimi i Desktopit nga macOS dhe Linux

  1. Konfiguro parazgjedhjen e parazgjedhur për ndërtimet e Desktopit:

    # For Release build:
    cmake --preset default
    
    # For Debug build:
    cmake --preset default-debug
    
  2. Ndërto LiteRT:

    # For Release build:
    cmake --build cmake_build -j
    
    # For Debug build:
    cmake --build cmake_build_debug -j
    

Personalizo objektivin tënd të ndërtimit

Përshtatja e Ndërtimeve CMake

Përdorni opsionet CMake për të kontrolluar se cilat zinxhirë mjetesh dhe veçori kompilohen në objektivat tuaj. P.sh.:

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 ju lejon të drejtoni mjetet ndihmëse të hostit në çdo instalim të Clang/GCC pa modifikuar CMakeLists.txt .
  • LITERT_DISABLE_KLEIDIAI i mban versionet e desktopit x86 të riprodhueshme duke anashkaluar KleidiAI; vendoseni në OFF sa herë që dëshironi ta paketoni delegatin.
  • Gjithmonë kaloni -DCMAKE_BUILD_TYPE=Release (ose parazgjedhjen ekuivalente) kur keni nevojë për artefaktin e optimizuar. Kjo e bën CMake të përdorë -O3 -DNDEBUG për ju.

Prodhimi i Bibliotekave të Furnizuesve me Madhësi Minimale

Në kohën e lidhjes aktivizoni dead-stripping në mënyrë që bibliotekat e dispeçimit të përputhen me madhësinë e Bazel:

  • macOS: shtoni -DCMAKE_SHARED_LINKER_FLAGS_RELEASE="-Wl,-dead_strip -dead_strip_dylibs" (dhe të njëjtën gjë për CMAKE_EXE_LINKER_FLAGS_RELEASE nëse dëshironi që skedarët e ekzekutueshëm të hiqen). Pas ndërtimit, ekzekutoni strip -x path/to/libLiteRtDispatch_Qualcomm.dylib .
  • Linux: shtoni -DCMAKE_SHARED_LINKER_FLAGS_RELEASE="-Wl,--gc-sections" dhe ekzekutoni strip --strip-unneeded path/to/libLiteRtDispatch_Qualcomm.so (ose bëjeni një komandë POST_BUILD ).

Këto flamuj mund të vendosen direkt në hyrjet cmake --preset …CMakePresets.json kështu që çdo zhvillues në ekipin tuaj merr të njëjtin konfigurim.

Këshilla për zgjidhjen e problemeve

  • Fshini direktorinë përkatëse cmake_build* nëse ndryshoni zinxhirët e mjeteve ose opsionet kryesore të konfigurimit, pastaj riekzekutoni hapin e konfigurimit.
  • Inspektoni CMakeCache.txt brenda çdo peme ndërtimi për shtigje varësie të zgjidhura.