Fix cargo2android. am: 2a78f125fb

Original change: https://android-review.googlesource.com/c/platform/external/rust/crates/grpcio-sys/+/2855615

Change-Id: I26ed1ce1d3c7b1ed2e7fdeb7098ddc6f217c502a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/Android.bp b/Android.bp
index 82d85f0..bd5d904 100644
--- a/Android.bp
+++ b/Android.bp
@@ -39,10 +39,7 @@
     host_supported: true,
     crate_name: "grpcio_sys",
     cargo_env_compat: true,
-    srcs: [
-        "src/lib.rs",
-        ":libgrpc_bindgen",
-    ],
+    srcs: ["src/lib.rs", ":libgrpc_bindgen"],
     edition: "2018",
     features: [
         "_gen-bindings",
@@ -51,21 +48,22 @@
         "boringssl",
         "boringssl-src",
     ],
+    cfgs: ["soong"],
     rustlibs: [
         "liblibc",
         "liblibz_sys",
     ],
-    shared_libs: [
-        "libgrpc++",
-        "libgrpc_wrap"
-    ],
     apex_available: [
         "//apex_available:platform",
         "com.android.btservices",
     ],
-    product_available: false,
     vendor_available: true,
     min_sdk_version: "29",
+    shared_libs: [
+        "libgrpc++",
+        "libgrpc_wrap"
+    ]
+    ,
 }
 
 cc_defaults {
@@ -130,3 +128,4 @@
     clippy_lints: "none",
     lints: "none",
 }
+
diff --git a/cargo2android.json b/cargo2android.json
index 900f061..9b5eaef 100644
--- a/cargo2android.json
+++ b/cargo2android.json
@@ -5,7 +5,6 @@
   ],
   "device": true,
   "features": "boringssl,_gen-bindings",
-  "ignore-cargo-errors": true,
   "min-sdk-version": "29",
   "no-pkg-vers": true,
   "patch": "patches/Android.bp.patch",
diff --git a/grpc/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h b/grpc/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h
index 55cbb56..b696c4f 100644
--- a/grpc/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h
+++ b/grpc/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h
@@ -19,6 +19,8 @@
 #include <limits.h>
 
 #include <cstddef>
+// Added to fix compilation errors as it was missing. Should be fixed upstream.
+#include <cstdint>
 #include <cstring>
 #include <ostream>
 
diff --git a/patches/Android.bp.patch b/patches/Android.bp.patch
index 2b849d8..baf35eb 100644
--- a/patches/Android.bp.patch
+++ b/patches/Android.bp.patch
@@ -1,5 +1,5 @@
 diff --git a/Android.bp b/Android.bp
-index 6f8fdea..c629c0d 100644
+index 4bcdbd5..bd5d904 100644
 --- a/Android.bp
 +++ b/Android.bp
 @@ -39,7 +39,7 @@ rust_library {
@@ -11,3 +11,11 @@
      edition: "2018",
      features: [
          "_gen-bindings",
+@@ -48,6 +48,7 @@ rust_library {
+         "boringssl",
+         "boringssl-src",
+     ],
++    cfgs: ["soong"],
+     rustlibs: [
+         "liblibc",
+         "liblibz_sys",
diff --git a/patches/env.diff b/patches/env.diff
index f6155c5..f4dfea1 100644
--- a/patches/env.diff
+++ b/patches/env.diff
@@ -1,15 +1,16 @@
 diff --git a/src/lib.rs b/src/lib.rs
-index dc0699c..bd4e4fa 100644
+index dc0699c..0d582d7 100644
 --- a/src/lib.rs
 +++ b/src/lib.rs
-@@ -5,7 +5,10 @@
+@@ -5,7 +5,12 @@
  #![allow(non_upper_case_globals)]
  #[allow(clippy::all)]
  mod bindings {
--    include!(env!("BINDING_PATH"));
-+    //include!(env!("BINDING_PATH"));
++    #[cfg(not(soong))]
+     include!(env!("BINDING_PATH"));
 +    // ANDROID's build system doesn't support environment variables
 +    // so we hardcode the output location of the bindings here.
++    #[cfg(soong)]
 +    include!(concat!(env!("OUT_DIR"), "/grpc-bindings.rs"));
  }
  mod grpc_wrap;
diff --git a/patches/stdint.patch b/patches/stdint.patch
new file mode 100644
index 0000000..06d4b67
--- /dev/null
+++ b/patches/stdint.patch
@@ -0,0 +1,13 @@
+diff --git a/grpc/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h b/grpc/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h
+index 55cbb56..b696c4f 100644
+--- a/grpc/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h
++++ b/grpc/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h
+@@ -19,6 +19,8 @@
+ #include <limits.h>
+ 
+ #include <cstddef>
++// Added to fix compilation errors as it was missing. Should be fixed upstream.
++#include <cstdint>
+ #include <cstring>
+ #include <ostream>
+ 
diff --git a/src/lib.rs b/src/lib.rs
index bd4e4fa..0d582d7 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -5,9 +5,11 @@
 #![allow(non_upper_case_globals)]
 #[allow(clippy::all)]
 mod bindings {
-    //include!(env!("BINDING_PATH"));
+    #[cfg(not(soong))]
+    include!(env!("BINDING_PATH"));
     // ANDROID's build system doesn't support environment variables
     // so we hardcode the output location of the bindings here.
+    #[cfg(soong)]
     include!(concat!(env!("OUT_DIR"), "/grpc-bindings.rs"));
 }
 mod grpc_wrap;