// 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_argh_license"],
}

// Added automatically by a large-scale-change
// See: http://go/android-license-faq
license {
    name: "external_rust_crates_argh_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-BSD",
    ],
    license_text: [
        "LICENSE",
    ],
}

rust_test {
    name: "argh_test_src_lib",
    host_supported: true,
    crate_name: "argh",
    cargo_env_compat: true,
    cargo_pkg_version: "0.1.12",
    srcs: ["src/lib.rs"],
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    rustlibs: [
        "libargh_shared",
        "libonce_cell",
    ],
    proc_macros: ["libargh_derive"],
}

rust_test {
    name: "argh_test_tests_args_info_tests",
    host_supported: true,
    crate_name: "args_info_tests",
    cargo_env_compat: true,
    cargo_pkg_version: "0.1.12",
    srcs: ["tests/args_info_tests.rs"],
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    rustlibs: [
        "libargh",
        "libargh_shared",
        "libonce_cell",
    ],
    proc_macros: ["libargh_derive"],
}

rust_test {
    name: "argh_test_tests_lib",
    host_supported: true,
    crate_name: "lib",
    cargo_env_compat: true,
    cargo_pkg_version: "0.1.12",
    srcs: ["tests/lib.rs"],
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    rustlibs: [
        "libargh",
        "libargh_shared",
        "libonce_cell",
    ],
    proc_macros: ["libargh_derive"],
}

rust_library {
    name: "libargh",
    host_supported: true,
    crate_name: "argh",
    cargo_env_compat: true,
    cargo_pkg_version: "0.1.12",
    srcs: ["src/lib.rs"],
    edition: "2018",
    rustlibs: ["libargh_shared"],
    proc_macros: ["libargh_derive"],
    apex_available: [
        "//apex_available:platform",
        "com.android.virt",
    ],
    product_available: true,
    vendor_available: true,
}
