xref: /aosp_15_r20/external/bazelbuild-rules_rust/examples/bzlmod/proto/grpc_client/BUILD.bazel (revision d4726bddaa87cc4778e7472feed243fa4b6c267f)
1load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_doc", "rust_doc_test")
2
3# Build binary
4# https://bazelbuild.github.io/rules_rust/defs.html#rust_binary
5rust_binary(
6    name = "bin",
7    srcs = glob([
8        "src/*.rs",
9    ]),
10    crate_root = "src/main.rs",
11    rustc_flags = select({
12        "//:release": [
13            "-Clto",
14            "-Ccodegen-units=1",
15            "-Cpanic=abort",
16            "-Copt-level=3",
17            "-Cstrip=symbols",
18        ],
19        "//conditions:default": [
20            "-Copt-level=0",
21        ],
22    }),
23    visibility = ["//visibility:public"],
24    deps = [
25        # Internal crates
26        "//proto_bindings:rust_proto",
27        # External crates
28        "@crates//:tokio",
29        "@crates//:tonic",
30    ],
31)
32
33# Build documentation
34# https://bazelbuild.github.io/rules_rust/rust_doc.html
35rust_doc(
36    name = "client_doc",
37    crate = ":bin",
38    visibility = ["//visibility:public"],
39)
40
41# Test documentation
42# https://bazelbuild.github.io/rules_rust/rust_doc.html#rust_doc_test
43rust_doc_test(
44    name = "client_doc_test",
45    crate = ":bin",
46    visibility = ["//visibility:public"],
47)
48