// This file is generated by cargo_embargo.
// Do not modify this file as changes will be overridden on upgrade.

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

genrule {
    name: "copy_oid-registry_build_out",
    srcs: ["out/*"],
    cmd: "cp $(in) $(genDir)",
    out: ["oid_db.rs"],
}

rust_library {
    name: "liboid_registry",
    host_supported: true,
    crate_name: "oid_registry",
    cargo_env_compat: true,
    cargo_pkg_version: "0.2.0",
    srcs: [
        "src/lib.rs",
        ":copy_oid-registry_build_out",
    ],
    edition: "2018",
    features: [
        "crypto",
        "kdf",
        "nist_algs",
        "pkcs1",
        "pkcs12",
        "pkcs7",
        "pkcs9",
        "x509",
        "x962",
    ],
    rustlibs: ["libder_parser"],
    apex_available: [
        "//apex_available:platform",
        "com.android.virt",
    ],
    product_available: true,
    vendor_available: true,
    visibility: ["//external/rust/crates/x509-parser"],
}

rust_test {
    name: "oid-registry_test_src_lib",
    host_supported: true,
    crate_name: "oid_registry",
    cargo_env_compat: true,
    cargo_pkg_version: "0.2.0",
    srcs: [
        "src/lib.rs",
        ":copy_oid-registry_build_out",
    ],
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    features: [
        "crypto",
        "kdf",
        "nist_algs",
        "pkcs1",
        "pkcs12",
        "pkcs7",
        "pkcs9",
        "x509",
        "x962",
    ],
    rustlibs: ["libder_parser"],
}
