// This file is generated by cargo2android.py --config cargo2android.json.
// Do not modify this file as changes will be overridden on upgrade.

package {
    default_applicable_licenses: ["external_rust_crates_num-bigint_license"],
}

// Added automatically by a large-scale-change that took the approach of
// 'apply every license found to every target'. While this makes sure we respect
// every license restriction, it may not be entirely correct.
//
// e.g. GPL in an MIT project might only apply to the contrib/ directory.
//
// Please consider splitting the single license below into multiple licenses,
// taking care not to lose any license_kind information, and overriding the
// default license using the 'licenses: [...]' property on targets as needed.
//
// For unused files, consider creating a 'fileGroup' with "//visibility:private"
// to attach the license to, and including a comment whether the files may be
// used in the current project.
//
// large-scale-change included anything that looked like it might be a license
// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
//
// Please consider removing redundant or irrelevant files from 'license_text:'.
// See: http://go/android-license-faq
license {
    name: "external_rust_crates_num-bigint_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
        "SPDX-license-identifier-BSD",
        "SPDX-license-identifier-MIT",
    ],
    license_text: [
        "LICENSE-APACHE",
        "LICENSE-MIT",
    ],
}

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",
    cargo_env_compat: true,
    cargo_pkg_version: "0.4.3",
    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",
    ],
    apex_available: [
        "//apex_available:platform",
        "com.android.virt",
    ],
    vendor_available: true,
}

rust_test {
    name: "num-bigint_test_src_lib",
    host_supported: true,
    crate_name: "num_bigint",
    cargo_env_compat: true,
    cargo_pkg_version: "0.4.3",
    srcs: [
        "src/lib.rs",
        ":copy_num-bigint_build_out",
    ],
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    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",
    cargo_env_compat: true,
    cargo_pkg_version: "0.4.3",
    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 {
    name: "num-bigint_test_tests_bigint",
    defaults: ["num-bigint_test_defaults"],
    host_supported: true,
    srcs: [
        "tests/bigint.rs",
        ":copy_num-bigint_build_out",
    ],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "num-bigint_test_tests_bigint_bitwise",
    defaults: ["num-bigint_test_defaults"],
    host_supported: true,
    srcs: [
        "tests/bigint_bitwise.rs",
        ":copy_num-bigint_build_out",
    ],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "num-bigint_test_tests_bigint_scalar",
    defaults: ["num-bigint_test_defaults"],
    host_supported: true,
    srcs: [
        "tests/bigint_scalar.rs",
        ":copy_num-bigint_build_out",
    ],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "num-bigint_test_tests_biguint",
    defaults: ["num-bigint_test_defaults"],
    host_supported: true,
    srcs: [
        "tests/biguint.rs",
        ":copy_num-bigint_build_out",
    ],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "num-bigint_test_tests_biguint_scalar",
    defaults: ["num-bigint_test_defaults"],
    host_supported: true,
    srcs: [
        "tests/biguint_scalar.rs",
        ":copy_num-bigint_build_out",
    ],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "num-bigint_test_tests_fuzzed",
    defaults: ["num-bigint_test_defaults"],
    host_supported: true,
    srcs: [
        "tests/fuzzed.rs",
        ":copy_num-bigint_build_out",
    ],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "num-bigint_test_tests_modpow",
    defaults: ["num-bigint_test_defaults"],
    host_supported: true,
    srcs: [
        "tests/modpow.rs",
        ":copy_num-bigint_build_out",
    ],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "num-bigint_test_tests_roots",
    defaults: ["num-bigint_test_defaults"],
    host_supported: true,
    srcs: [
        "tests/roots.rs",
        ":copy_num-bigint_build_out",
    ],
    test_options: {
        unit_test: true,
    },
}
