From 19121f3f1f5205d95c2ce309235b55db5129cb0f Mon Sep 17 00:00:00 2001 From: iota9star Date: Sat, 12 Jul 2025 11:28:58 +0800 Subject: [PATCH] feat: add sysroot and bindgen configuration for Rust targets --- build_tool/lib/src/android_environment.dart | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/build_tool/lib/src/android_environment.dart b/build_tool/lib/src/android_environment.dart index 9342964..6509e55 100644 --- a/build_tool/lib/src/android_environment.dart +++ b/build_tool/lib/src/android_environment.dart @@ -147,6 +147,19 @@ class AndroidEnvironment { final toolTempDir = Platform.environment['CARGOKIT_TOOL_TEMP_DIR'] ?? targetTempDir; + final sysroot = path.join( + ndkPath, + 'toolchains', + 'llvm', + 'prebuilt', + hostArch, + 'sysroot', + ); + + final bindgenKey = "BINDGEN_EXTRA_CLANG_ARGS_${target.rust}"; + final bindgenValue = + "--sysroot=$sysroot -I${path.join(sysroot, 'usr', 'include', target.rust)}"; + return { arKey: arValue, ccKey: ccValue, @@ -156,6 +169,7 @@ class AndroidEnvironment { ranlibKey: ranlibValue, rustFlagsKey: rustFlagsValue, linkerKey: selfPath, + bindgenKey: bindgenValue, // Recognized by main() so we know when we're acting as a wrapper '_CARGOKIT_NDK_LINK_TARGET': targetArg, '_CARGOKIT_NDK_LINK_CLANG': ccValue,