Add Android.bp and auto-generated Rust code

The "use_addcarry" cfg is disabled as it's not supported on arm and
aarch64.

Bug: 193833713
Change-Id: If69ec41db93335f3514a490be9b4f816287600cb
diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..494f35f
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,245 @@
+// This file is generated by cargo2android.py --config cargo2android.json.
+// Do not modify this file as changes will be overridden on upgrade.
+
+
+
+genrule {
+    name: "copy_num-bigint_build_out",
+    srcs: ["out/*"],
+    cmd: "cp $(in) $(genDir)",
+    out: [
+        "probe0.ll",
+        "probe1.ll",
+        "probe2.ll",
+        "probe3.ll",
+        "radix_bases.rs",
+    ],
+}
+
+rust_library {
+    name: "libnum_bigint",
+    host_supported: true,
+    crate_name: "num_bigint",
+    srcs: [
+        "src/lib.rs",
+        ":copy_num-bigint_build_out",
+    ],
+    edition: "2018",
+    features: [
+        "default",
+        "std",
+    ],
+    cfgs: [
+        "has_try_from",
+        "u64_digit",
+    ],
+    rustlibs: [
+        "libnum_integer",
+        "libnum_traits",
+    ],
+}
+
+rust_defaults {
+    name: "num-bigint_test_defaults",
+    crate_name: "num_bigint",
+    srcs: [
+        "src/lib.rs",
+        ":copy_num-bigint_build_out",
+    ],
+    test_suites: ["general-tests"],
+    auto_gen_config: true,
+    edition: "2018",
+    features: [
+        "default",
+        "std",
+    ],
+    cfgs: [
+        "has_try_from",
+        "u64_digit",
+    ],
+    rustlibs: [
+        "libnum_integer",
+        "libnum_traits",
+    ],
+}
+
+rust_test_host {
+    name: "num-bigint_host_test_src_lib",
+    defaults: ["num-bigint_test_defaults"],
+    test_options: {
+        unit_test: true,
+    },
+}
+
+rust_test {
+    name: "num-bigint_device_test_src_lib",
+    defaults: ["num-bigint_test_defaults"],
+}
+
+rust_defaults {
+    name: "num-bigint_test_defaults_num_bigint",
+    crate_name: "num_bigint",
+    test_suites: ["general-tests"],
+    auto_gen_config: true,
+    edition: "2018",
+    features: [
+        "default",
+        "std",
+    ],
+    cfgs: [
+        "has_try_from",
+        "u64_digit",
+    ],
+    rustlibs: [
+        "libnum_bigint",
+        "libnum_integer",
+        "libnum_traits",
+    ],
+}
+
+rust_test_host {
+    name: "num-bigint_host_test_tests_bigint",
+    defaults: ["num-bigint_test_defaults_num_bigint"],
+    srcs: [
+        "tests/bigint.rs",
+        ":copy_num-bigint_build_out",
+    ],
+    test_options: {
+        unit_test: true,
+    },
+}
+
+rust_test {
+    name: "num-bigint_device_test_tests_bigint",
+    defaults: ["num-bigint_test_defaults_num_bigint"],
+    srcs: [
+        "tests/bigint.rs",
+        ":copy_num-bigint_build_out",
+    ],
+}
+
+rust_test_host {
+    name: "num-bigint_host_test_tests_bigint_bitwise",
+    defaults: ["num-bigint_test_defaults_num_bigint"],
+    srcs: [
+        "tests/bigint_bitwise.rs",
+        ":copy_num-bigint_build_out",
+    ],
+    test_options: {
+        unit_test: true,
+    },
+}
+
+rust_test {
+    name: "num-bigint_device_test_tests_bigint_bitwise",
+    defaults: ["num-bigint_test_defaults_num_bigint"],
+    srcs: [
+        "tests/bigint_bitwise.rs",
+        ":copy_num-bigint_build_out",
+    ],
+}
+
+rust_test_host {
+    name: "num-bigint_host_test_tests_bigint_scalar",
+    defaults: ["num-bigint_test_defaults_num_bigint"],
+    srcs: [
+        "tests/bigint_scalar.rs",
+        ":copy_num-bigint_build_out",
+    ],
+    test_options: {
+        unit_test: true,
+    },
+}
+
+rust_test {
+    name: "num-bigint_device_test_tests_bigint_scalar",
+    defaults: ["num-bigint_test_defaults_num_bigint"],
+    srcs: [
+        "tests/bigint_scalar.rs",
+        ":copy_num-bigint_build_out",
+    ],
+}
+
+rust_test_host {
+    name: "num-bigint_host_test_tests_biguint",
+    defaults: ["num-bigint_test_defaults_num_bigint"],
+    srcs: [
+        "tests/biguint.rs",
+        ":copy_num-bigint_build_out",
+    ],
+    test_options: {
+        unit_test: true,
+    },
+}
+
+rust_test {
+    name: "num-bigint_device_test_tests_biguint",
+    defaults: ["num-bigint_test_defaults_num_bigint"],
+    srcs: [
+        "tests/biguint.rs",
+        ":copy_num-bigint_build_out",
+    ],
+}
+
+rust_test_host {
+    name: "num-bigint_host_test_tests_biguint_scalar",
+    defaults: ["num-bigint_test_defaults_num_bigint"],
+    srcs: [
+        "tests/biguint_scalar.rs",
+        ":copy_num-bigint_build_out",
+    ],
+    test_options: {
+        unit_test: true,
+    },
+}
+
+rust_test {
+    name: "num-bigint_device_test_tests_biguint_scalar",
+    defaults: ["num-bigint_test_defaults_num_bigint"],
+    srcs: [
+        "tests/biguint_scalar.rs",
+        ":copy_num-bigint_build_out",
+    ],
+}
+
+rust_test_host {
+    name: "num-bigint_host_test_tests_modpow",
+    defaults: ["num-bigint_test_defaults_num_bigint"],
+    srcs: [
+        "tests/modpow.rs",
+        ":copy_num-bigint_build_out",
+    ],
+    test_options: {
+        unit_test: true,
+    },
+}
+
+rust_test {
+    name: "num-bigint_device_test_tests_modpow",
+    defaults: ["num-bigint_test_defaults_num_bigint"],
+    srcs: [
+        "tests/modpow.rs",
+        ":copy_num-bigint_build_out",
+    ],
+}
+
+rust_test_host {
+    name: "num-bigint_host_test_tests_roots",
+    defaults: ["num-bigint_test_defaults_num_bigint"],
+    srcs: [
+        "tests/roots.rs",
+        ":copy_num-bigint_build_out",
+    ],
+    test_options: {
+        unit_test: true,
+    },
+}
+
+rust_test {
+    name: "num-bigint_device_test_tests_roots",
+    defaults: ["num-bigint_test_defaults_num_bigint"],
+    srcs: [
+        "tests/roots.rs",
+        ":copy_num-bigint_build_out",
+    ],
+}