// 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_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",
    srcs: ["src/lib.rs"],
    edition: "2018",
    features: [
        "alloc",
        "std",
    ],
    rustlibs: [
        "libring",
        "libuntrusted",
    ],
}

rust_defaults {
    name: "webpki_test_defaults",
    crate_name: "webpki",
    srcs: ["src/lib.rs"],
    test_suites: ["general-tests"],
    auto_gen_config: true,
    edition: "2018",
    features: [
        "alloc",
        "std",
    ],
    rustlibs: [
        "libbase64_rust",
        "libring",
        "libuntrusted",
    ],
}

rust_test_host {
    name: "webpki_host_test_src_lib",
    defaults: ["webpki_test_defaults"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "webpki_device_test_src_lib",
    defaults: ["webpki_test_defaults"],
}

rust_defaults {
    name: "webpki_test_defaults_webpki",
    crate_name: "webpki",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    edition: "2018",
    features: [
        "alloc",
        "std",
    ],
    rustlibs: [
        "libbase64_rust",
        "libring",
        "libuntrusted",
        "libwebpki",
    ],
}

rust_test_host {
    name: "webpki_host_test_tests_dns_name_tests",
    defaults: ["webpki_test_defaults_webpki"],
    srcs: ["tests/dns_name_tests.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "webpki_device_test_tests_dns_name_tests",
    defaults: ["webpki_test_defaults_webpki"],
    srcs: ["tests/dns_name_tests.rs"],
}

rust_test_host {
    name: "webpki_host_test_tests_integration",
    defaults: ["webpki_test_defaults_webpki"],
    srcs: ["tests/integration.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "webpki_device_test_tests_integration",
    defaults: ["webpki_test_defaults_webpki"],
    srcs: ["tests/integration.rs"],
}
