blob: 7e6132b52e73eff5d22d42cc7649229f4cc9e485 [file] [log] [blame]
module(
name = "grpc-client-server",
version = "0.0.0",
)
###############################################################################
# B A Z E L C E N T R A L R E G I S T R Y # https://registry.bazel.build/
###############################################################################
# https://github.com/bazelbuild/rules_rust/releases
bazel_dep(name = "rules_rust", version = "0.0.0")
local_path_override(
module_name = "rules_rust",
path = "../..",
)
bazel_dep(name = "rules_rust_prost", version = "0.0.0")
local_path_override(
module_name = "rules_rust_prost",
path = "../../extensions/prost",
)
#
# Rules for protobuf / gRPC
# https://github.com/bazelbuild/rules_proto/releases
bazel_dep(name = "rules_proto", version = "7.1.0")
# https://registry.bazel.build/modules/protobuf
bazel_dep(name = "protobuf", version = "29.1", repo_name = "com_google_protobuf")
# https://github.com/bazel-contrib/toolchains_llvm
bazel_dep(name = "toolchains_llvm", version = "1.5.0")
###############################################################################
# L L V M
# https://github.com/bazel-contrib/toolchains_llvm/blob/master/tests/MODULE.bazel
###############################################################################
llvm = use_extension("@toolchains_llvm//toolchain/extensions:llvm.bzl", "llvm")
# LLVM Versions and platforms
# https://github.com/bazel-contrib/toolchains_llvm/blob/master/toolchain/internal/llvm_distributions.bzl
LLVM_VERSIONS = {
"": "16.0.0",
"darwin-aarch64": "16.0.3",
"darwin-x86_64": "15.0.7",
}
# Host LLVM toolchain.
llvm.toolchain(
name = "llvm_toolchain",
llvm_versions = LLVM_VERSIONS,
)
use_repo(llvm, "llvm_toolchain", "llvm_toolchain_llvm")
register_toolchains("@llvm_toolchain//:all")
###############################################################################
# T O O L C H A I N S
###############################################################################
# Rust toolchain
RUST_EDITION = "2021"
RUST_VERSION = "1.90.0"
rust = use_extension("@rules_rust//rust:extensions.bzl", "rust")
rust.toolchain(
edition = RUST_EDITION,
versions = [RUST_VERSION],
)
use_repo(rust, "rust_toolchains")
register_toolchains("@rust_toolchains//:all")
# Custom Prost toolchain
register_toolchains(
"@//build/prost_toolchain",
"@//build/proto_toolchain",
)
###############################################################################
# R U S T C R A T E S
###############################################################################
crate = use_extension("@rules_rust//crate_universe:extensions.bzl", "crate")
#
# protobuf / gRPC dependencies
crate.spec(
package = "prost",
version = "0.13.1",
)
crate.spec(
default_features = False,
package = "prost-types",
version = "0.13.1",
)
crate.spec(
features = ["transport"],
package = "tonic",
version = "0.12.1",
)
crate.spec(
package = "tonic-build",
version = "0.12.1",
)
crate.spec(
package = "protoc-gen-prost",
version = "0.4.0",
)
crate.annotation(
crate = "protoc-gen-prost",
gen_binaries = ["protoc-gen-prost"],
)
crate.spec(
package = "protoc-gen-tonic",
version = "0.4.0",
)
crate.annotation(
crate = "protoc-gen-tonic",
gen_binaries = ["protoc-gen-tonic"],
)
#
# External crates
crate.spec(
default_features = False,
features = [
"macros",
"net",
"rt-multi-thread",
"signal",
],
package = "tokio",
version = "1.39.3",
)
crate.from_specs(
cargo_lockfile = "//:Cargo.Bazel.lock",
)
use_repo(crate, "crates")