Skip to content

Commit b8a817a

Browse files
committed
Expose bindgen toolchain through bzlmod
1 parent 347f5c0 commit b8a817a

File tree

6 files changed

+43
-13
lines changed

6 files changed

+43
-13
lines changed

MODULE.bazel

+4-1
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,11 @@ register_toolchains(
175175
"//proto/prost:default_prost_toolchain",
176176
)
177177

178+
bindgen = use_extension("//bindgen:extension.bzl", "bindgen")
179+
use_repo(bindgen, "bindgen_toolchains")
180+
178181
register_toolchains(
179-
"//bindgen:default_bindgen_toolchain",
182+
"@bindgen_toolchains//:default_bindgen_toolchain",
180183
)
181184

182185
rust_host_tools = use_extension("//rust:extensions.bzl", "rust_host_tools")

bindgen/BUILD.bazel

+7-11
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
2-
load("//bindgen:defs.bzl", "rust_bindgen_toolchain")
32

43
package(default_visibility = ["//visibility:public"])
54

@@ -11,21 +10,18 @@ bzl_library(
1110
name = "bzl_lib",
1211
srcs = glob(["**/*.bzl"]),
1312
deps = [
14-
"//bindgen/3rdparty:bzl_lib",
15-
"//bindgen/private:bzl_lib",
16-
"//rust:bzl_lib",
13+
"@rules_rust//bindgen/3rdparty:bzl_lib",
14+
"@rules_rust//bindgen/private:bzl_lib",
15+
"@rules_rust//rust:bzl_lib",
1716
],
1817
)
1918

20-
rust_bindgen_toolchain(
19+
alias(
2120
name = "default_bindgen_toolchain_impl",
22-
bindgen = "//bindgen/3rdparty:bindgen",
23-
clang = "@llvm-project//clang:clang",
24-
libclang = "@llvm-project//clang:libclang",
21+
actual = "//bindgen/toolchain:default_bindgen_toolchain_impl",
2522
)
2623

27-
toolchain(
24+
alias(
2825
name = "default_bindgen_toolchain",
29-
toolchain = "default_bindgen_toolchain_impl",
30-
toolchain_type = "//bindgen:toolchain_type",
26+
actual = "//bindgen/toolchain:default_bindgen_toolchain",
3127
)

bindgen/extension.bzl

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
"""Module extension for accessing a bindgen toolchain"""
2+
3+
load("@bazel_tools//tools/build_defs/repo:local.bzl", "local_repository")
4+
load(":repositories.bzl", "rust_bindgen_dependencies")
5+
load(":transitive_repositories.bzl", "rust_bindgen_transitive_dependencies")
6+
7+
def _bindgen_impl(ctx):
8+
rust_bindgen_transitive_dependencies()
9+
rust_bindgen_dependencies()
10+
local_repository(
11+
name = "bindgen_toolchains",
12+
path = str(ctx.path(Label("//bindgen/toolchain:BUILD.bazel")).dirname),
13+
)
14+
15+
bindgen = module_extension(implementation = _bindgen_impl)

bindgen/toolchain/BUILD.bazel

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
load("@rules_rust//bindgen:defs.bzl", "rust_bindgen_toolchain")
2+
3+
package(default_visibility = ["//visibility:public"])
4+
5+
rust_bindgen_toolchain(
6+
name = "default_bindgen_toolchain_impl",
7+
bindgen = "@rules_rust//bindgen/3rdparty:bindgen",
8+
clang = "@llvm-project//clang:clang",
9+
libclang = "@llvm-project//clang:libclang",
10+
)
11+
12+
toolchain(
13+
name = "default_bindgen_toolchain",
14+
toolchain = "default_bindgen_toolchain_impl",
15+
toolchain_type = "@rules_rust//bindgen:toolchain_type",
16+
)

bindgen/toolchain/REPO.bazel

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+

bindgen/transitive_repositories.bzl

-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ def rust_bindgen_transitive_dependencies():
88

99
llvm_configure(
1010
name = "llvm-project",
11-
repo_mapping = {"@llvm_zlib": "@zlib"},
1211
targets = [
1312
"AArch64",
1413
"X86",

0 commit comments

Comments
 (0)