xref: /aosp_15_r20/external/bazelbuild-rules_rust/examples/bzlmod/proto/MODULE.bazel (revision d4726bddaa87cc4778e7472feed243fa4b6c267f)
1module(
2    name = "grpc-client-server",
3    version = "0.0.0",
4)
5
6###############################################################################
7# B A Z E L  C E N T R A L  R E G I S T R Y # https://registry.bazel.build/
8###############################################################################
9# https://github.com/bazelbuild/rules_rust/releases
10bazel_dep(name = "rules_rust", version = "0.46.0")
11local_path_override(
12    module_name = "rules_rust",
13    path = "../../..",
14)
15
16#
17# Rules for protobuf / gRPC
18# https://github.com/bazelbuild/rules_proto/releases
19bazel_dep(name = "rules_proto", version = "6.0.2")
20
21# https://github.com/aspect-build/toolchains_protoc/releases
22bazel_dep(name = "toolchains_protoc", version = "0.3.1")
23
24# https://registry.bazel.build/modules/protobuf
25bazel_dep(name = "protobuf", version = "27.1")
26
27# https://github.com/bazel-contrib/toolchains_llvm
28bazel_dep(name = "toolchains_llvm", version = "1.0.0")
29
30###############################################################################
31# L L V M
32# https://github.com/bazel-contrib/toolchains_llvm/blob/master/tests/MODULE.bazel
33###############################################################################
34llvm = use_extension("@toolchains_llvm//toolchain/extensions:llvm.bzl", "llvm")
35
36# LLVM Versions and platforms
37# https://github.com/bazel-contrib/toolchains_llvm/blob/master/toolchain/internal/llvm_distributions.bzl
38LLVM_VERSIONS = {
39    "": "16.0.0",
40    "darwin-aarch64": "16.0.3",
41    "darwin-x86_64": "15.0.7",
42}
43
44# Host LLVM toolchain.
45llvm.toolchain(
46    name = "llvm_toolchain",
47    llvm_versions = LLVM_VERSIONS,
48)
49use_repo(llvm, "llvm_toolchain", "llvm_toolchain_llvm")
50
51register_toolchains("@llvm_toolchain//:all")
52
53###############################################################################
54# T O O L C H A I N S
55###############################################################################
56
57# Rust toolchain
58RUST_EDITION = "2021"
59
60RUST_VERSION = "1.79.0"
61
62rust = use_extension("@rules_rust//rust:extensions.bzl", "rust")
63rust.toolchain(
64    edition = RUST_EDITION,
65    versions = [RUST_VERSION],
66)
67use_repo(rust, "rust_toolchains")
68
69register_toolchains("@rust_toolchains//:all")
70
71# Proto toolchain
72register_toolchains("@rules_rust//proto/protobuf:default-proto-toolchain")
73
74# Custom Prost toolchain
75register_toolchains("@//build/prost_toolchain")
76
77###############################################################################
78# R U S T  C R A T E S
79###############################################################################
80crate = use_extension("@rules_rust//crate_universe:extension.bzl", "crate")
81
82#
83# protobuf / gRPC dependencies
84crate.spec(
85    package = "prost",
86    version = "0.12",
87)
88crate.spec(
89    default_features = False,
90    package = "prost-types",
91    version = "0.12",
92)
93crate.spec(
94    features = ["transport"],
95    package = "tonic",
96    version = "0.11",
97)
98crate.spec(
99    package = "tonic-build",
100    version = "0.11",
101)
102crate.spec(
103    package = "protoc-gen-prost",
104    version = "0.3.1",
105)
106crate.annotation(
107    crate = "protoc-gen-prost",
108    gen_binaries = ["protoc-gen-prost"],
109)
110crate.spec(
111    package = "protoc-gen-tonic",
112    version = "0.4.0",
113)
114crate.annotation(
115    crate = "protoc-gen-tonic",
116    gen_binaries = ["protoc-gen-tonic"],
117)
118
119#
120# External crates
121crate.spec(
122    default_features = False,
123    features = [
124        "macros",
125        "net",
126        "rt-multi-thread",
127        "signal",
128    ],
129    package = "tokio",
130    version = "1.38",
131)
132crate.from_specs()
133use_repo(crate, "crates")
134