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