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

package {
    default_applicable_licenses: [
        "external_rust_crates_grpcio-compiler_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.
// See: http://go/android-license-faq
license {
    name: "external_rust_crates_grpcio-compiler_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
        "SPDX-license-identifier-MIT",
    ],
    license_text: [
        "LICENSE",
    ],
}

rust_binary_host {
    name: "grpc_rust_plugin",
    crate_name: "grpc_rust_plugin",
    srcs: ["src/bin/grpc_rust_plugin.rs"],
    edition: "2018",
    features: [
        "default",
        "protobuf",
        "protobuf-codec",
    ],
    rustlibs: [
        "libgrpcio_compiler",
        "libprotobuf",
    ],
}

rust_library_host {
    name: "libgrpcio_compiler",
    crate_name: "grpcio_compiler",
    srcs: ["src/lib.rs"],
    edition: "2018",
    features: [
        "default",
        "protobuf",
        "protobuf-codec",
    ],
    rustlibs: [
        "libprotobuf",
    ],
}

// dependent_library ["feature_list"]
//   protobuf-2.22.1
