// This file is generated by cargo2android.py --run --device --tests --dependencies.
// Do not modify this file as changes will be overridden on upgrade.

package {
    default_applicable_licenses: [
        "external_rust_crates_crossbeam-deque_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_crossbeam-deque_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
        "SPDX-license-identifier-MIT",
    ],
    license_text: [
        "LICENSE-APACHE",
        "LICENSE-MIT",
    ],
}

rust_defaults {
    name: "crossbeam-deque_test_defaults",
    crate_name: "crossbeam_deque",
    srcs: ["src/lib.rs"],
    cargo_env_compat: true,
    cargo_pkg_version: "0.8.1",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    edition: "2018",
    features: [
        "crossbeam-epoch",
        "crossbeam-utils",
        "default",
        "std",
    ],
    rustlibs: [
        "libcfg_if",
        "libcrossbeam_epoch",
        "libcrossbeam_utils",
        "librand",
    ],
}

rust_test_host {
    name: "crossbeam-deque_host_test_src_lib",
    defaults: ["crossbeam-deque_test_defaults"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "crossbeam-deque_device_test_src_lib",
    defaults: ["crossbeam-deque_test_defaults"],
}

rust_defaults {
    name: "crossbeam-deque_test_defaults_crossbeam_deque",
    crate_name: "crossbeam_deque",
    cargo_env_compat: true,
    cargo_pkg_version: "0.8.1",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    edition: "2018",
    features: [
        "crossbeam-epoch",
        "crossbeam-utils",
        "default",
        "std",
    ],
    rustlibs: [
        "libcfg_if",
        "libcrossbeam_deque",
        "libcrossbeam_epoch",
        "libcrossbeam_utils",
        "librand",
    ],
}

rust_test_host {
    name: "crossbeam-deque_host_test_tests_fifo",
    defaults: ["crossbeam-deque_test_defaults_crossbeam_deque"],
    srcs: ["tests/fifo.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "crossbeam-deque_device_test_tests_fifo",
    defaults: ["crossbeam-deque_test_defaults_crossbeam_deque"],
    srcs: ["tests/fifo.rs"],
}

rust_test_host {
    name: "crossbeam-deque_host_test_tests_injector",
    defaults: ["crossbeam-deque_test_defaults_crossbeam_deque"],
    srcs: ["tests/injector.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "crossbeam-deque_device_test_tests_injector",
    defaults: ["crossbeam-deque_test_defaults_crossbeam_deque"],
    srcs: ["tests/injector.rs"],
}

rust_test_host {
    name: "crossbeam-deque_host_test_tests_lifo",
    defaults: ["crossbeam-deque_test_defaults_crossbeam_deque"],
    srcs: ["tests/lifo.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "crossbeam-deque_device_test_tests_lifo",
    defaults: ["crossbeam-deque_test_defaults_crossbeam_deque"],
    srcs: ["tests/lifo.rs"],
}

rust_test_host {
    name: "crossbeam-deque_host_test_tests_steal",
    defaults: ["crossbeam-deque_test_defaults_crossbeam_deque"],
    srcs: ["tests/steal.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "crossbeam-deque_device_test_tests_steal",
    defaults: ["crossbeam-deque_test_defaults_crossbeam_deque"],
    srcs: ["tests/steal.rs"],
}

rust_library {
    name: "libcrossbeam_deque",
    host_supported: true,
    crate_name: "crossbeam_deque",
    cargo_env_compat: true,
    cargo_pkg_version: "0.8.1",
    srcs: ["src/lib.rs"],
    edition: "2018",
    features: [
        "crossbeam-epoch",
        "crossbeam-utils",
        "default",
        "std",
    ],
    rustlibs: [
        "libcfg_if",
        "libcrossbeam_epoch",
        "libcrossbeam_utils",
    ],
}
