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

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,
    },
}
