-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMODULE.bazel
More file actions
91 lines (80 loc) · 3.39 KB
/
Copy pathMODULE.bazel
File metadata and controls
91 lines (80 loc) · 3.39 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
80
81
82
83
84
85
86
87
88
89
90
91
module(
name = "gazelle_py",
version = "0.0.0",
# rules_rs 0.0.73 requires Bazel >=8.5.0; we don't use anything beyond
# what rules_rs requires, so match its floor.
bazel_compatibility = [">=8.5.0"],
)
bazel_dep(name = "platforms", version = "1.0.0")
bazel_dep(name = "rules_rs", version = "0.0.73")
bazel_dep(name = "rules_proto", version = "7.1.0")
bazel_dep(name = "protobuf", version = "34.0.bcr.1", repo_name = "com_google_protobuf")
bazel_dep(name = "rules_go", version = "0.60.0")
bazel_dep(name = "gazelle", version = "0.50.0")
bazel_dep(name = "with_cfg.bzl", version = "0.14.6")
# Source of @llvm//constraints/libc:gnu.2.28 — the libc constraint that
# rules_rs's Linux toolchains pin via target_compatible_with, applied to our
# host platform at //platforms:local_gnu.
bazel_dep(name = "llvm", version = "0.7.3")
# Hermetic clang toolchain. Replaces Bazel's autodetected `@local_config_cc`
# so APPLE_SDK_PLATFORM never reaches the action env on macOS, avoiding
# XcodeLocalEnvProvider's duplicate-SDKROOT crash with rules_rust's hermetic
# SDKROOT injection.
register_toolchains("@llvm//toolchain:all")
# rules_rust facade — exposes @rules_rust so .bazelrc's --config=opt and
# the with_cfg wrapper in //crates/import_extractor:opt.bzl can reference
# @rules_rust//:extra_rustc_flags. Also keeps rules_rs's internal loads
# resolving against the same canonical repo for toolchain_type matching.
rules_rust = use_extension("@rules_rs//rs:rules_rust.bzl", "rules_rust")
use_repo(rules_rust, "rules_rust")
# Rust toolchain — propagates to consumers because their gazelle_binary
# links our staticlib via cgo and needs to build the rust crate.
toolchains = use_extension(
"@rules_rs//rs/toolchains:module_extension.bzl",
"toolchains",
)
toolchains.toolchain(
edition = "2024",
version = "1.95.0",
)
use_repo(toolchains, "default_rust_toolchains")
register_toolchains("@default_rust_toolchains//:all")
# Crate resolution: rules_rs reads Cargo.toml/Cargo.lock directly (no
# repinning). Propagates to consumers along with the rust toolchain above.
#
# The hub name is namespaced (`gazelle_py_crates` rather than the generic
# `crates`) so it doesn't collide with consumers' own crate.from_cargo
# invocations — rules_rs merges hubs by name, and a collision would pair
# our Cargo.lock against the consumer's Cargo.toml.
crate = use_extension(
"@rules_rs//rs:extensions.bzl",
"crate",
)
crate.from_cargo(
name = "gazelle_py_crates",
cargo_lock = "//:Cargo.lock",
cargo_toml = "//:Cargo.toml",
platform_triples = [
"aarch64-apple-darwin",
"aarch64-unknown-linux-gnu",
"x86_64-apple-darwin",
"x86_64-unknown-linux-gnu",
],
)
use_repo(crate, "gazelle_py_crates")
# Prost/tonic codegen toolchains for rust_prost_library.
rules_rust_prost = use_extension("@rules_rs//rs:rules_rust_prost.bzl", "rules_rust_prost")
use_repo(rules_rust_prost, "rules_rust_prost")
register_toolchains("@rules_rust_prost//:default_prost_toolchain")
# Go toolchain + module deps for the gazelle plugin.
go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk")
go_sdk.download(version = "1.24.12")
go_deps = use_extension("@gazelle//:extensions.bzl", "go_deps")
go_deps.from_file(go_mod = "//:go.mod")
use_repo(
go_deps,
"com_github_bazelbuild_buildtools",
"com_github_bmatcuk_doublestar_v4",
"com_github_burntsushi_toml",
"org_golang_google_protobuf",
)