// 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",
    ],
    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,
    },
}
