// This file is generated by cargo2android.py --device --run --dependencies --tests --features=std.
// Do not modify this file as changes will be overridden on upgrade.

package {
    default_applicable_licenses: ["external_rust_crates_getrandom_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_getrandom_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
        "SPDX-license-identifier-MIT",
    ],
    license_text: [
        "LICENSE-APACHE",
        "LICENSE-MIT",
    ],
}

rust_defaults {
    name: "getrandom_defaults",
    crate_name: "getrandom",
    srcs: ["src/lib.rs"],
    test_suites: ["general-tests"],
    auto_gen_config: true,
    edition: "2018",
    features: ["std"],
    rustlibs: [
        "libcfg_if",
        "liblibc",
    ],
}

rust_test_host {
    name: "getrandom_host_test_src_lib",
    defaults: ["getrandom_defaults"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "getrandom_device_test_src_lib",
    defaults: ["getrandom_defaults"],
}

rust_defaults {
    name: "getrandom_defaults_getrandom",
    crate_name: "getrandom",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    edition: "2018",
    features: ["std"],
    rustlibs: [
        "libcfg_if",
        "libgetrandom",
        "liblibc",
    ],
}

rust_test_host {
    name: "getrandom_host_test_tests_custom",
    defaults: ["getrandom_defaults_getrandom"],
    srcs: ["tests/custom.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "getrandom_device_test_tests_custom",
    defaults: ["getrandom_defaults_getrandom"],
    srcs: ["tests/custom.rs"],
}

rust_test_host {
    name: "getrandom_host_test_tests_normal",
    defaults: ["getrandom_defaults_getrandom"],
    srcs: ["tests/normal.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "getrandom_device_test_tests_normal",
    defaults: ["getrandom_defaults_getrandom"],
    srcs: ["tests/normal.rs"],
}

rust_test_host {
    name: "getrandom_host_test_tests_rdrand",
    defaults: ["getrandom_defaults_getrandom"],
    srcs: ["tests/rdrand.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "getrandom_device_test_tests_rdrand",
    defaults: ["getrandom_defaults_getrandom"],
    srcs: ["tests/rdrand.rs"],
}

rust_library {
    name: "libgetrandom",
    host_supported: true,
    crate_name: "getrandom",
    srcs: ["src/lib.rs"],
    edition: "2018",
    features: ["std"],
    rustlibs: [
        "libcfg_if",
        "liblibc",
    ],
}

// dependent_library ["feature_list"]
//   cfg-if-1.0.0
//   libc-0.2.87
