// This file is generated by cargo_embargo.
// Do not modify this file after the first "rust_*" or "genrule" module
// because the changes will be overridden on upgrade.
// Content before the first "rust_*" or "genrule" module is preserved.

package {
    default_applicable_licenses: ["external_rust_crates_webpki_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.
// See: http://go/android-license-faq
license {
    name: "external_rust_crates_webpki_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-BSD",
        "SPDX-license-identifier-ISC",
    ],
    license_text: [
        "LICENSE",
    ],
}

rust_library {
    name: "libwebpki",
    host_supported: true,
    crate_name: "webpki",
    cargo_env_compat: true,
    cargo_pkg_version: "0.22.4",
    crate_root: "src/lib.rs",
    edition: "2018",
    features: [
        "alloc",
        "std",
    ],
    rustlibs: [
        "libring",
        "libuntrusted",
    ],
    apex_available: [
        "//apex_available:platform",
        "//apex_available:anyapex",
    ],
}

rust_test {
    name: "webpki_test_src_lib",
    host_supported: true,
    crate_name: "webpki",
    cargo_env_compat: true,
    cargo_pkg_version: "0.22.4",
    crate_root: "src/lib.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    features: [
        "alloc",
        "std",
    ],
    rustlibs: [
        "libbase64_rust",
        "libring",
        "libserde",
        "libserde_json",
        "libuntrusted",
    ],
}

rust_test {
    name: "webpki_test_tests_dns_name_tests",
    host_supported: true,
    crate_name: "dns_name_tests",
    cargo_env_compat: true,
    cargo_pkg_version: "0.22.4",
    crate_root: "tests/dns_name_tests.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    features: [
        "alloc",
        "std",
    ],
    rustlibs: [
        "libbase64_rust",
        "libring",
        "libserde",
        "libserde_json",
        "libuntrusted",
        "libwebpki",
    ],
}

rust_test {
    name: "webpki_test_tests_integration",
    host_supported: true,
    crate_name: "integration",
    cargo_env_compat: true,
    cargo_pkg_version: "0.22.4",
    crate_root: "tests/integration.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    features: [
        "alloc",
        "std",
    ],
    rustlibs: [
        "libbase64_rust",
        "libring",
        "libserde",
        "libserde_json",
        "libuntrusted",
        "libwebpki",
    ],
}
