Repository navigation
Expand file tree
/
Copy pathMODULE.bazel
More file actions
79 lines (65 loc) · 2.97 KB
/
Copy pathMODULE.bazel
File metadata and controls
79 lines (65 loc) · 2.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
# This product includes software developed at Datadog (https://www.datadoghq.com/) Copyright 2026 Datadog, Inc.
module(
name = "bazel_conduit",
version = "0.0.1-RC2",
)
# =============================================================================
# Core Bazel dependencies
# =============================================================================
bazel_dep(name = "bazel_skylib", version = "1.9.0")
bazel_dep(name = "platforms", version = "1.1.0")
bazel_dep(name = "rules_shell", version = "0.8.0")
# =============================================================================
# C/C++ (hermetic LLVM: clang + lld, no host compiler or sysroot)
# https://github.com/hermeticbuild/hermetic-llvm
# =============================================================================
bazel_dep(name = "llvm", version = "0.8.26")
register_toolchains("@llvm//toolchain:all")
# =============================================================================
# Protocol Buffers
# =============================================================================
bazel_dep(name = "rules_proto", version = "7.1.0")
bazel_dep(name = "protobuf", version = "33.4")
# =============================================================================
# Rust (rules_rs: toolchains, crates, and patched @rules_rust / @rules_rust_prost)
# https://github.com/hermeticbuild/rules_rs
# =============================================================================
bazel_dep(name = "rules_rs", version = "0.1.3")
toolchains = use_extension("@rules_rs//rs/toolchains:module_extension.bzl", "toolchains")
toolchains.toolchain(
edition = "2024",
version = "1.93.0",
)
use_repo(toolchains, "default_rust_toolchains")
register_toolchains("@default_rust_toolchains//...")
rules_rust = use_extension("@rules_rs//rs:rules_rust.bzl", "rules_rust")
use_repo(rules_rust, "rules_rust")
rules_rust_prost = use_extension("@rules_rs//rs:rules_rust_prost.bzl", "rules_rust_prost")
use_repo(rules_rust_prost, "rules_rust_prost")
crate = use_extension("@rules_rs//rs:extensions.bzl", "crate")
crate.from_cargo(
name = "crates",
cargo_lock = "//rust/conduit:Cargo.lock",
cargo_toml = "//rust/conduit:Cargo.toml",
platform_triples = [
"aarch64-apple-darwin",
"x86_64-apple-darwin",
"aarch64-unknown-linux-gnu",
"x86_64-unknown-linux-gnu",
],
)
# Generate protoc plugin binaries from crate dependencies
crate.annotation(
crate = "protoc-gen-prost",
gen_binaries = ["protoc-gen-prost"],
)
crate.annotation(
crate = "protoc-gen-tonic",
gen_binaries = ["protoc-gen-tonic"],
)
use_repo(crate, "crates")
# =============================================================================
# Prost toolchain (using crates from rules_rs for version consistency)
# =============================================================================
register_toolchains("//toolchain:prost_toolchain")