| load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_doc", "rust_doc_test") |
| |
| # Build binary |
| # https://bazelbuild.github.io/rules_rust/defs.html#rust_binary |
| rust_binary( |
| name = "bin", |
| srcs = glob([ |
| "src/*.rs", |
| ]), |
| crate_root = "src/main.rs", |
| rustc_flags = select({ |
| "//:release": [ |
| "-Clto", |
| "-Ccodegen-units=1", |
| "-Cpanic=abort", |
| "-Copt-level=3", |
| "-Cstrip=symbols", |
| ], |
| "//conditions:default": [ |
| "-Copt-level=0", |
| ], |
| }), |
| visibility = ["//visibility:public"], |
| deps = [ |
| # Internal crates |
| "//proto_bindings:rust_proto", |
| # External crates |
| "@crates//:tokio", |
| "@crates//:tonic", |
| ], |
| ) |
| |
| # Build documentation |
| # https://bazelbuild.github.io/rules_rust/rust_doc.html |
| rust_doc( |
| name = "client_doc", |
| crate = ":bin", |
| visibility = ["//visibility:public"], |
| ) |
| |
| # Test documentation |
| # https://bazelbuild.github.io/rules_rust/rust_doc.html#rust_doc_test |
| rust_doc_test( |
| name = "client_doc_test", |
| crate = ":bin", |
| visibility = ["//visibility:public"], |
| ) |