• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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