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

package {
    default_applicable_licenses: ["external_rust_crates_proc-macro2_license"],
    default_team: "trendy_team_android_rust",
}

license {
    name: "external_rust_crates_proc-macro2_license",
    visibility: [":__subpackages__"],
    license_kinds: ["SPDX-license-identifier-Apache-2.0"],
    license_text: ["LICENSE"],
}

rust_library_host {
    name: "libproc_macro2",
    host_cross_supported: false,
    crate_name: "proc_macro2",
    cargo_env_compat: true,
    cargo_pkg_version: "1.0.69",
    crate_root: "src/lib.rs",
    edition: "2021",
    features: [
        "default",
        "proc-macro",
        "span-locations",
    ],
    cfgs: [
        "proc_macro_span",
        "span_locations",
        "wrap_proc_macro",
    ],
    rustlibs: ["libunicode_ident"],
    compile_multilib: "first",
}

rust_test_host {
    name: "proc-macro2_test_tests_comments",
    host_cross_supported: false,
    crate_name: "comments",
    cargo_env_compat: true,
    cargo_pkg_version: "1.0.69",
    crate_root: "tests/comments.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2021",
    features: [
        "default",
        "proc-macro",
        "span-locations",
    ],
    cfgs: [
        "proc_macro_span",
        "span_locations",
        "wrap_proc_macro",
    ],
    rustlibs: [
        "libproc_macro2",
        "libquote",
        "libunicode_ident",
    ],
    proc_macros: ["librustversion"],
}

rust_test_host {
    name: "proc-macro2_test_tests_features",
    host_cross_supported: false,
    crate_name: "features",
    cargo_env_compat: true,
    cargo_pkg_version: "1.0.69",
    crate_root: "tests/features.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2021",
    features: [
        "default",
        "proc-macro",
        "span-locations",
    ],
    cfgs: [
        "proc_macro_span",
        "span_locations",
        "wrap_proc_macro",
    ],
    rustlibs: [
        "libproc_macro2",
        "libquote",
        "libunicode_ident",
    ],
    proc_macros: ["librustversion"],
}

rust_test_host {
    name: "proc-macro2_test_tests_marker",
    host_cross_supported: false,
    crate_name: "marker",
    cargo_env_compat: true,
    cargo_pkg_version: "1.0.69",
    crate_root: "tests/marker.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2021",
    features: [
        "default",
        "proc-macro",
        "span-locations",
    ],
    cfgs: [
        "proc_macro_span",
        "span_locations",
        "wrap_proc_macro",
    ],
    rustlibs: [
        "libproc_macro2",
        "libquote",
        "libunicode_ident",
    ],
    proc_macros: ["librustversion"],
}

rust_test_host {
    name: "proc-macro2_test_tests_test",
    host_cross_supported: false,
    crate_name: "test",
    cargo_env_compat: true,
    cargo_pkg_version: "1.0.69",
    crate_root: "tests/test.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2021",
    features: [
        "default",
        "proc-macro",
        "span-locations",
    ],
    cfgs: [
        "proc_macro_span",
        "span_locations",
        "wrap_proc_macro",
    ],
    rustlibs: [
        "libproc_macro2",
        "libquote",
        "libunicode_ident",
    ],
    proc_macros: ["librustversion"],
}

rust_test_host {
    name: "proc-macro2_test_tests_test_fmt",
    host_cross_supported: false,
    crate_name: "test_fmt",
    cargo_env_compat: true,
    cargo_pkg_version: "1.0.69",
    crate_root: "tests/test_fmt.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2021",
    features: [
        "default",
        "proc-macro",
        "span-locations",
    ],
    cfgs: [
        "proc_macro_span",
        "span_locations",
        "wrap_proc_macro",
    ],
    rustlibs: [
        "libproc_macro2",
        "libquote",
        "libunicode_ident",
    ],
    proc_macros: ["librustversion"],
}

rust_test_host {
    name: "proc-macro2_test_tests_test_size",
    host_cross_supported: false,
    crate_name: "test_size",
    cargo_env_compat: true,
    cargo_pkg_version: "1.0.69",
    crate_root: "tests/test_size.rs",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2021",
    features: [
        "default",
        "proc-macro",
        "span-locations",
    ],
    cfgs: [
        "proc_macro_span",
        "span_locations",
        "wrap_proc_macro",
    ],
    rustlibs: [
        "libproc_macro2",
        "libquote",
        "libunicode_ident",
    ],
    proc_macros: ["librustversion"],
}
