// 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_der_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_der_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
        "SPDX-license-identifier-MIT",
    ],
    license_text: [
        "LICENSE-APACHE",
    ],
}

rust_library_host {
    name: "libder",
    crate_name: "der",
    cargo_env_compat: true,
    cargo_pkg_version: "0.6.1",
    srcs: ["src/lib.rs"],
    edition: "2021",
    features: [
        "alloc",
        "const-oid",
        "der_derive",
        "derive",
        "flagset",
        "oid",
        "zeroize",
    ],
    rustlibs: [
        "libconst_oid",
        "libflagset",
        "libzeroize",
    ],
    proc_macros: ["libder_derive"],
}

rust_library_rlib {
    name: "libder_nostd",
    crate_name: "der",
    cargo_env_compat: true,
    cargo_pkg_version: "0.6.1",
    srcs: ["src/lib.rs"],
    edition: "2021",
    features: [
        "alloc",
        "const-oid",
        "der_derive",
        "derive",
        "flagset",
        "oid",
        "zeroize",
    ],
    rustlibs: [
        "libconst_oid_nostd",
        "libflagset_nostd",
        "libzeroize_nostd",
    ],
    proc_macros: ["libder_derive"],
    apex_available: [
        "//apex_available:platform",
        "com.android.virt",
    ],
    prefer_rlib: true,
    no_stdlibs: true,
    stdlibs: [
        "liballoc.rust_sysroot",
        "libcompiler_builtins.rust_sysroot",
        "libcore.rust_sysroot",
    ],
    product_available: true,
    vendor_available: true,
    visibility: [
        "//external/rust/crates/sec1:__subpackages__",
        "//external/rust/crates/spki:__subpackages__",
        "//external/rust/crates/pkcs1:__subpackages__",
        "//external/rust/crates/pkcs8:__subpackages__",
        "//external/rust/crates/x509-cert:__subpackages__",
        "//system/keymint:__subpackages__",
    ],

}
