Android: bindgen NDK-sysroot (фикс bits/libc-header-start.h)

magnum-opus/hwcodec/scrap bindgen резолвил stdint.h в host-glibc.
BINDGEN_EXTRA_CLANG_ARGS_<target> = NDK sysroot + android target.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-14 18:37:36 +03:00
parent bb8525058f
commit 3f95d3ef5a
+6 -1
View File
@@ -63,7 +63,12 @@ RUSTC_BOOTSTRAP=1 flutter_rust_bridge_codegen \
# glibc-заголовках (bits/libc-header-start.h). Софт-кодеки (vpx/aom) работают. hwcodec-android # glibc-заголовках (bits/libc-header-start.h). Софт-кодеки (vpx/aom) работают. hwcodec-android
# — отдельная доработка (RUSTDESK_ANDROID_FEATURES="flutter,hwcodec" когда починим bindgen). # — отдельная доработка (RUSTDESK_ANDROID_FEATURES="flutter,hwcodec" когда починим bindgen).
FEATURES="${RUSTDESK_ANDROID_FEATURES:-flutter}" FEATURES="${RUSTDESK_ANDROID_FEATURES:-flutter}"
echo "[rust] cargo ndk build --features $FEATURES ..." # bindgen (magnum-opus/hwcodec/scrap) при кросс-сборке резолвит #include <stdint.h> в HOST
# /usr/include (glibc) -> не находит bits/libc-header-start.h. Указываем NDK-sysroot и target
# через target-specific env (bindgen читает подчёркнутую форму).
NDK_SYSROOT="$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/sysroot"
export BINDGEN_EXTRA_CLANG_ARGS_aarch64_linux_android="--sysroot=$NDK_SYSROOT --target=aarch64-linux-android21"
echo "[rust] cargo ndk build --features $FEATURES (bindgen sysroot=$NDK_SYSROOT) ..."
cargo ndk --platform 21 --target aarch64-linux-android build --locked --release --features "$FEATURES" cargo ndk --platform 21 --target aarch64-linux-android build --locked --release --features "$FEATURES"
# --- jniLibs: librustdesk.so + libc++_shared.so --- # --- jniLibs: librustdesk.so + libc++_shared.so ---