build(bazel): add first-party Rust wrappers
This commit is contained in:
@@ -99,6 +99,8 @@
|
|||||||
- When creating a pull request from a worktree-specific development branch, create a dedicated pull-request branch
|
- When creating a pull request from a worktree-specific development branch, create a dedicated pull-request branch
|
||||||
separate from the branch that names or anchors the worktree.
|
separate from the branch that names or anchors the worktree.
|
||||||
Do not open pull requests directly from the worktree branch.
|
Do not open pull requests directly from the worktree branch.
|
||||||
|
- First-party Rust `BUILD` files should load the monorepo Rust wrappers from `//bazel:rust.bzl`
|
||||||
|
instead of loading Rust build rules from `@rules_rust` directly.
|
||||||
- In Bazel `BUILD` files, depend on vendored Rust crates through the public aliases under
|
- In Bazel `BUILD` files, depend on vendored Rust crates through the public aliases under
|
||||||
`//third_party/crates`, for example `//third_party/crates:serde`.
|
`//third_party/crates`, for example `//third_party/crates:serde`.
|
||||||
- Ariadne extraction must preserve the game-root season prefix for archived source.
|
- Ariadne extraction must preserve the game-root season prefix for archived source.
|
||||||
|
|||||||
40
MODULE.bazel.lock
generated
40
MODULE.bazel.lock
generated
@@ -93,7 +93,7 @@
|
|||||||
"moduleExtensions": {
|
"moduleExtensions": {
|
||||||
"//bazel:rust.bzl%rust": {
|
"//bazel:rust.bzl%rust": {
|
||||||
"general": {
|
"general": {
|
||||||
"bzlTransitiveDigest": "4kUzQyjRjzchWIBZJKkNs8LuO4F+g/DwuwtTa0RTPcU=",
|
"bzlTransitiveDigest": "TLLdfRWRMJF1vhBgv8dwQ3JyMdQ0kBjLdPu6lvlFalw=",
|
||||||
"usagesDigest": "jJoM2Hp1NbshT//puE4xIUfXdA0K6BRx1WTlsZIKFm4=",
|
"usagesDigest": "jJoM2Hp1NbshT//puE4xIUfXdA0K6BRx1WTlsZIKFm4=",
|
||||||
"recordedFileInputs": {},
|
"recordedFileInputs": {},
|
||||||
"recordedDirentsInputs": {},
|
"recordedDirentsInputs": {},
|
||||||
@@ -105,7 +105,43 @@
|
|||||||
"attributes": {}
|
"attributes": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"recordedRepoMappingEntries": []
|
"recordedRepoMappingEntries": [
|
||||||
|
[
|
||||||
|
"",
|
||||||
|
"rules_rust",
|
||||||
|
"rules_rust~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"rules_cc~",
|
||||||
|
"bazel_tools",
|
||||||
|
"bazel_tools"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"rules_cc~",
|
||||||
|
"rules_cc",
|
||||||
|
"rules_cc~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"rules_rust~",
|
||||||
|
"bazel_skylib",
|
||||||
|
"bazel_skylib~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"rules_rust~",
|
||||||
|
"bazel_tools",
|
||||||
|
"bazel_tools"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"rules_rust~",
|
||||||
|
"rules_cc",
|
||||||
|
"rules_cc~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"rules_rust~",
|
||||||
|
"rules_rust",
|
||||||
|
"rules_rust~"
|
||||||
|
]
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@@rules_jvm_external~//:extensions.bzl%maven": {
|
"@@rules_jvm_external~//:extensions.bzl%maven": {
|
||||||
|
|||||||
@@ -1,6 +1,52 @@
|
|||||||
|
load(
|
||||||
|
"@rules_rust//rust:defs.bzl",
|
||||||
|
_rules_rust_binary = "rust_binary",
|
||||||
|
_rules_rust_library = "rust_library",
|
||||||
|
_rules_rust_test = "rust_test",
|
||||||
|
)
|
||||||
load("//bazel:utils.bzl", "execute", "require_env")
|
load("//bazel:utils.bzl", "execute", "require_env")
|
||||||
|
|
||||||
|
|
||||||
|
def rust_module(name, src, deps = [], **kwargs):
|
||||||
|
native.filegroup(
|
||||||
|
name = name,
|
||||||
|
srcs = [src] + deps,
|
||||||
|
**kwargs
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def rust_library(name, src, crate_name = None, modules = [], deps = [], **kwargs):
|
||||||
|
_rules_rust_library(
|
||||||
|
name = name,
|
||||||
|
crate_name = crate_name,
|
||||||
|
crate_root = src,
|
||||||
|
srcs = [src] + modules,
|
||||||
|
deps = deps,
|
||||||
|
**kwargs
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def rust_binary(name, src, crate_name = None, deps = [], **kwargs):
|
||||||
|
_rules_rust_binary(
|
||||||
|
name = name,
|
||||||
|
crate_name = crate_name,
|
||||||
|
crate_root = src,
|
||||||
|
srcs = [src],
|
||||||
|
deps = deps,
|
||||||
|
**kwargs
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def rust_test(name, src, deps = [], **kwargs):
|
||||||
|
_rules_rust_test(
|
||||||
|
name = name,
|
||||||
|
crate_root = src,
|
||||||
|
srcs = [src],
|
||||||
|
deps = deps,
|
||||||
|
**kwargs
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def _rust_repository_impl(repository_ctx):
|
def _rust_repository_impl(repository_ctx):
|
||||||
root = repository_ctx.path(require_env(repository_ctx, "RUST_TOOLCHAIN_ROOT"))
|
root = repository_ctx.path(require_env(repository_ctx, "RUST_TOOLCHAIN_ROOT"))
|
||||||
rustc = root.get_child("bin/rustc")
|
rustc = root.get_child("bin/rustc")
|
||||||
|
|||||||
@@ -1,13 +1,21 @@
|
|||||||
load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_library", "rust_test")
|
load("//bazel:rust.bzl", "rust_binary", "rust_library", "rust_module", "rust_test")
|
||||||
|
|
||||||
|
rust_module(
|
||||||
|
name = "graph",
|
||||||
|
src = "src/graph.rs",
|
||||||
|
)
|
||||||
|
|
||||||
|
rust_module(
|
||||||
|
name = "artifact",
|
||||||
|
src = "src/artifact.rs",
|
||||||
|
deps = [":graph"],
|
||||||
|
)
|
||||||
|
|
||||||
rust_library(
|
rust_library(
|
||||||
name = "ariadne_lib",
|
name = "ariadne_lib",
|
||||||
crate_name = "ariadne",
|
crate_name = "ariadne",
|
||||||
srcs = [
|
src = "src/lib.rs",
|
||||||
"src/artifact.rs",
|
modules = [":artifact"],
|
||||||
"src/graph.rs",
|
|
||||||
"src/lib.rs",
|
|
||||||
],
|
|
||||||
deps = [
|
deps = [
|
||||||
"//third_party/crates:serde",
|
"//third_party/crates:serde",
|
||||||
"//third_party/crates:serde_json",
|
"//third_party/crates:serde_json",
|
||||||
@@ -16,7 +24,7 @@ rust_library(
|
|||||||
|
|
||||||
rust_test(
|
rust_test(
|
||||||
name = "ariadne_lib_test",
|
name = "ariadne_lib_test",
|
||||||
srcs = ["src/lib_test.rs"],
|
src = "src/lib_test.rs",
|
||||||
deps = [
|
deps = [
|
||||||
":ariadne_lib",
|
":ariadne_lib",
|
||||||
"//third_party/crates:serde_json",
|
"//third_party/crates:serde_json",
|
||||||
@@ -26,7 +34,7 @@ rust_test(
|
|||||||
rust_binary(
|
rust_binary(
|
||||||
name = "ariadne",
|
name = "ariadne",
|
||||||
crate_name = "ariadne_cli",
|
crate_name = "ariadne_cli",
|
||||||
srcs = ["src/main.rs"],
|
src = "src/main.rs",
|
||||||
deps = [":ariadne_lib"],
|
deps = [":ariadne_lib"],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user