// This file is generated by cargo2android.py --config cargo2android.json.
// Do not modify this file as changes will be overridden on upgrade.

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

rust_library {
    name: "libfutures",
    host_supported: true,
    crate_name: "futures",
    srcs: ["src/lib.rs"],
    edition: "2018",
    features: [
        "alloc",
        "async-await",
        "default",
        "executor",
        "futures-executor",
        "std",
    ],
    rustlibs: [
        "libfutures_channel",
        "libfutures_core",
        "libfutures_executor",
        "libfutures_io",
        "libfutures_sink",
        "libfutures_task",
        "libfutures_util",
    ],
    apex_available: [
        "//apex_available:platform",
        "com.android.resolv",
        "com.android.virt",
    ],
    min_sdk_version: "29",
}

// dependent_library ["feature_list"]
//   autocfg-1.0.1
//   futures-channel-0.3.16 "alloc,futures-sink,sink,std"
//   futures-core-0.3.16 "alloc,std"
//   futures-executor-0.3.16 "std"
//   futures-io-0.3.16 "std"
//   futures-macro-0.3.16
//   futures-sink-0.3.16 "alloc,std"
//   futures-task-0.3.16 "alloc,std"
//   futures-util-0.3.16 "alloc,async-await,async-await-macro,channel,futures-channel,futures-io,futures-macro,futures-sink,io,memchr,proc-macro-hack,proc-macro-nested,sink,slab,std"
//   memchr-2.4.0 "default,std"
//   pin-project-lite-0.2.7
//   pin-utils-0.1.0
//   proc-macro-hack-0.5.19
//   proc-macro-nested-0.1.7
//   proc-macro2-1.0.28 "default,proc-macro"
//   quote-1.0.9 "default,proc-macro"
//   slab-0.4.4 "default,std"
//   syn-1.0.74 "clone-impls,default,derive,full,parsing,printing,proc-macro,quote,visit-mut"
//   unicode-xid-0.2.2 "default"
