// This file is generated by cargo2android.py --run --tests --host-first-multilib --features=default,span-locations.
// Do not modify this file as changes will be overridden on upgrade.

package {
    default_applicable_licenses: ["external_rust_crates_proc-macro2_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_proc-macro2_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
        "SPDX-license-identifier-MIT",
    ],
    license_text: [
        "LICENSE-APACHE",
        "LICENSE-MIT",
    ],
}

rust_library_host {
    name: "libproc_macro2",
    crate_name: "proc_macro2",
    cargo_env_compat: true,
    cargo_pkg_version: "1.0.29",
    srcs: ["src/lib.rs"],
    edition: "2018",
    features: [
        "default",
        "proc-macro",
        "span-locations",
    ],
    cfgs: [
        "hygiene",
        "lexerror_display",
        "literal_from_str",
        "proc_macro_span",
        "span_locations",
        "use_proc_macro",
        "wrap_proc_macro",
    ],
    rustlibs: [
        "libunicode_xid",
    ],
    compile_multilib: "first",
}

rust_test_host {
    name: "proc-macro2_host_test_src_lib",
    crate_name: "proc_macro2",
    cargo_env_compat: true,
    cargo_pkg_version: "1.0.29",
    srcs: ["src/lib.rs"],
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    features: [
        "default",
        "proc-macro",
        "span-locations",
    ],
    cfgs: [
        "hygiene",
        "lexerror_display",
        "literal_from_str",
        "proc_macro_span",
        "span_locations",
        "use_proc_macro",
        "wrap_proc_macro",
    ],
    rustlibs: [
        "libquote",
        "libunicode_xid",
    ],
}

rust_defaults {
    name: "proc-macro2_test_defaults",
    crate_name: "proc_macro2",
    cargo_env_compat: true,
    cargo_pkg_version: "1.0.29",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    edition: "2018",
    features: [
        "default",
        "proc-macro",
        "span-locations",
    ],
    cfgs: [
        "hygiene",
        "lexerror_display",
        "literal_from_str",
        "proc_macro_span",
        "span_locations",
        "use_proc_macro",
        "wrap_proc_macro",
    ],
    rustlibs: [
        "libproc_macro2",
        "libquote",
        "libunicode_xid",
    ],
}

rust_test_host {
    name: "proc-macro2_host_test_tests_comments",
    defaults: ["proc-macro2_test_defaults"],
    srcs: ["tests/comments.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test_host {
    name: "proc-macro2_host_test_tests_features",
    defaults: ["proc-macro2_test_defaults"],
    srcs: ["tests/features.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test_host {
    name: "proc-macro2_host_test_tests_marker",
    defaults: ["proc-macro2_test_defaults"],
    srcs: ["tests/marker.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test_host {
    name: "proc-macro2_host_test_tests_test",
    defaults: ["proc-macro2_test_defaults"],
    srcs: ["tests/test.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test_host {
    name: "proc-macro2_host_test_tests_test_fmt",
    defaults: ["proc-macro2_test_defaults"],
    srcs: ["tests/test_fmt.rs"],
    test_options: {
        unit_test: true,
    },
}
