// This file is generated by cargo2android.py --run --device --features=default,secure --dependencies --patch=patches/Android.bp.patch --ignore-cargo-errors.

rust_library {
    name: "libgrpcio_sys",
    host_supported: true,
    crate_name: "grpcio_sys",
    srcs: [
        "src/lib.rs",
        ":libgrpc_bindgen",
    ],
    edition: "2018",
    features: [
        "default",
        "secure",
    ],
    rustlibs: [
        "liblibc",
        "liblibz_sys",
    ],
    shared_libs: [
        "libgrpc++",
        "libgrpc_wrap"
    ],
}

cc_defaults {
    name: "libgrpcio_sys_defaults",
    cflags: [
        "-DGRPC_SYS_SECURE",
    ],
    cpp_std: "c++11",
    shared_libs: ["libgrpc++"],
}

cc_library {
    name: "libgrpc_wrap",
    defaults: ["libgrpcio_sys_defaults"],
    host_supported: true,
    srcs: ["grpc_wrap.cc"],
}

rust_bindgen {
    name: "libgrpc_bindgen",
    defaults: ["libgrpcio_sys_defaults"],
    host_supported: true,
    wrapper_src: "android/bindgen_wrapper.hpp",
    source_stem: "grpc-bindings",
    crate_name: "grpc_bindgen",
    bindgen_flags: [
        "--size_t-is-usize",
        "--constified-enum-module grpc_status_code",
        "--default-enum-style rust",
        "--whitelist-function=\\bgrpc_.*",
        "--whitelist-function=\\bgpr_.*",
        "--whitelist-function=gpr_inf_future",
        "--whitelist-function=\\bgrpcwrap_.*",
        "--whitelist-var=\\bGRPC_.*",
        "--whitelist-type=\\bgrpc_.*",
        "--whitelist-type=\\bgpr_.*",
        "--whitelist-type=\\bgrpcwrap_.*",
        "--whitelist-type=\\bcensus_context.*",
        "--whitelist-type=\\bverify_peer_options.*",
        "--blacklist-type=(__)?pthread.*",
        "--blacklist-function=\\bgpr_mu_.*",
        "--blacklist-function=\\bgpr_cv_.*",
        "--blacklist-function=\\bgpr_once_.*",
        "--blacklist-type=gpr_mu",
        "--blacklist-type=gpr_cv",
        "--blacklist-type=gpr_once",
    ]
}

// dependent_library ["feature_list"]
//   aho-corasick-0.7.14 "default,std"
//   bindgen-0.51.1
//   bitflags-1.2.1 "default"
//   cc-1.0.61
//   cexpr-0.3.6
//   cfg-if-0.1.10
//   clang-sys-0.28.1 "clang_6_0,gte_clang_3_6,gte_clang_3_7,gte_clang_3_8,gte_clang_3_9,gte_clang_4_0,gte_clang_5_0,gte_clang_6_0,libloading,runtime"
//   cmake-0.1.44
//   glob-0.3.0
//   lazy_static-1.4.0
//   libc-0.2.80 "default,std"
//   libloading-0.5.2
//   libz-sys-1.1.2 "default,libc,static,stock-zlib"
//   memchr-2.3.4 "default,std,use_std"
//   nom-4.2.3 "alloc,default,std,verbose-errors"
//   peeking_take_while-0.1.2
//   pkg-config-0.3.19
//   proc-macro2-1.0.24
//   quote-1.0.7
//   regex-1.4.2 "aho-corasick,default,memchr,perf,perf-cache,perf-dfa,perf-inline,perf-literal,std,thread_local,unicode,unicode-age,unicode-bool,unicode-case,unicode-gencat,unicode-perl,unicode-script,unicode-segment"
//   regex-syntax-0.6.21 "default,unicode,unicode-age,unicode-bool,unicode-case,unicode-gencat,unicode-perl,unicode-script,unicode-segment"
//   rustc-hash-1.1.0 "default,std"
//   same-file-1.0.6
//   shlex-0.1.1
//   thread_local-1.0.1
//   unicode-xid-0.2.1 "default"
//   version_check-0.1.5
//   walkdir-2.3.1
