1diff --git a/Android.bp b/Android.bp 2index 45707bc..d0369e6 100644 3--- a/Android.bp 4+++ b/Android.bp 5@@ -40,7 +40,10 @@ 6 host_supported: true, 7 crate_name: "grpcio_sys", 8 cargo_env_compat: true, 9- srcs: ["src/lib.rs"], 10+ srcs: [ 11+ "src/lib.rs", 12+ ":libgrpc_bindgen", 13+ ], 14 edition: "2018", 15 features: [ 16 "bindgen", 17@@ -55,52 +55,75 @@ 18 "liblibc", 19 "liblibz_sys", 20 ], 21- static_libs: [ 22- "libabsl_bad_optional_access", 23- "libabsl_bad_variant_access", 24- "libabsl_base", 25- "libabsl_city", 26- "libabsl_civil_time", 27- "libabsl_cord", 28- "libabsl_debugging_internal", 29- "libabsl_demangle_internal", 30- "libabsl_exponential_biased", 31- "libabsl_graphcycles_internal", 32- "libabsl_hash", 33- "libabsl_hashtablez_sampler", 34- "libabsl_int128", 35- "libabsl_log_severity", 36- "libabsl_malloc_internal", 37- "libabsl_raw_hash_set", 38- "libabsl_raw_logging_internal", 39- "libabsl_spinlock_wait", 40- "libabsl_stacktrace", 41- "libabsl_status", 42- "libabsl_statusor", 43- "libabsl_str_format_internal", 44- "libabsl_strings", 45- "libabsl_strings_internal", 46- "libabsl_symbolize", 47- "libabsl_synchronization", 48- "libabsl_throw_delegate", 49- "libabsl_time", 50- "libabsl_time_zone", 51- "libabsl_wyhash", 52- "libaddress_sorting", 53- "libcares", 54- "libcrypto", 55- "libgpr", 56- "libgrpc", 57- "libgrpc_wrap", 58- "libre2", 59- "libssl", 60- "libupb", 61- "libz", 62+ shared_libs: [ 63+ "libgrpc++", 64+ "libgrpc_wrap" 65 ], 66- shared_libs: ["libstdc++"], 67 apex_available: [ 68 "//apex_available:platform", 69 "com.android.bluetooth", 70 ], 71 min_sdk_version: "29", 72 } 73+ 74+cc_defaults { 75+ name: "libgrpcio_sys_defaults", 76+ cflags: [ 77+ "-DGRPC_SYS_SECURE", 78+ ], 79+ cpp_std: "c++11", 80+ shared_libs: ["libgrpc++"], 81+ apex_available: [ 82+ "//apex_available:platform", 83+ "com.android.bluetooth", 84+ ], 85+ min_sdk_version: "29", 86+} 87+ 88+cc_library { 89+ name: "libgrpc_wrap", 90+ defaults: ["libgrpcio_sys_defaults"], 91+ host_supported: true, 92+ srcs: ["grpc_wrap.cc"], 93+} 94+ 95+rust_bindgen { 96+ name: "libgrpc_bindgen", 97+ defaults: ["libgrpcio_sys_defaults"], 98+ host_supported: true, 99+ wrapper_src: "android/bindgen_wrapper.hpp", 100+ source_stem: "grpc-bindings", 101+ crate_name: "grpc_bindgen", 102+ bindgen_flags: [ 103+ "--size_t-is-usize", 104+ "--constified-enum-module grpc_status_code", 105+ "--default-enum-style rust", 106+ "--allowlist-function=\\bgrpc_.*", 107+ "--allowlist-function=\\bgpr_.*", 108+ "--allowlist-function=\\bgrpcwrap_.*", 109+ "--allowlist-var=\\bGRPC_.*", 110+ "--allowlist-type=\\bgrpc_.*", 111+ "--allowlist-type=\\bgpr_.*", 112+ "--allowlist-type=\\bgrpcwrap_.*", 113+ "--allowlist-type=\\bcensus_context.*", 114+ "--allowlist-type=\\bverify_peer_options.*", 115+ "--blocklist-type=(__)?pthread.*", 116+ "--blocklist-function=\\bgpr_mu_.*", 117+ "--blocklist-function=\\bgpr_cv_.*", 118+ "--blocklist-function=\\bgpr_once_.*", 119+ "--blocklist-type=gpr_mu", 120+ "--blocklist-type=gpr_cv", 121+ "--blocklist-type=gpr_once", 122+ ], 123+ min_sdk_version: "29", 124+} 125+ 126+rust_test { 127+ name: "libgrpc_bindgen_test", 128+ srcs: [":libgrpc_bindgen"], 129+ crate_name: "grpc_bindgen_test", 130+ test_suites: ["general-tests"], 131+ auto_gen_config: true, 132+ clippy_lints: "none", 133+ lints: "none", 134+} 135