build: add Bazel Rust workflow
This commit was merged in pull request #2.
This commit is contained in:
117
bazel/rust.BUILD.template
Normal file
117
bazel/rust.BUILD.template
Normal file
@@ -0,0 +1,117 @@
|
||||
filegroup(
|
||||
name = "rustc",
|
||||
srcs = ["toolchain/bin/rustc"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "rustdoc",
|
||||
srcs = ["toolchain/bin/rustdoc"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "cargo",
|
||||
srcs = ["toolchain/bin/cargo"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "cargo_clippy",
|
||||
srcs = ["toolchain/bin/cargo-clippy"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "clippy_driver",
|
||||
srcs = ["toolchain/bin/clippy-driver"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "rustfmt",
|
||||
srcs = ["toolchain/bin/rustfmt"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "cc",
|
||||
srcs = ["toolchain/bin/cc"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "rustc_lib",
|
||||
srcs = glob(
|
||||
[
|
||||
"rust/lib/*.so*",
|
||||
"rust/lib/rustlib/{host_triple}/codegen-backends/*.so",
|
||||
"rust/lib/rustlib/{host_triple}/lib/*.so*",
|
||||
"rust/lib/rustlib/{host_triple}/lib/*.rmeta",
|
||||
],
|
||||
allow_empty = True,
|
||||
),
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "rust_objcopy",
|
||||
srcs = glob(
|
||||
["rust/lib/rustlib/{host_triple}/bin/rust-objcopy"],
|
||||
allow_empty = True,
|
||||
),
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
load("@rules_rust//rust:toolchain.bzl", "rust_stdlib_filegroup")
|
||||
|
||||
rust_stdlib_filegroup(
|
||||
name = "rust_std",
|
||||
srcs = glob(
|
||||
[
|
||||
"rust/lib/rustlib/{host_triple}/lib/*.rlib",
|
||||
"rust/lib/rustlib/{host_triple}/lib/*.rmeta",
|
||||
"rust/lib/rustlib/{host_triple}/lib/*.so*",
|
||||
"rust/lib/rustlib/{host_triple}/lib/*.a",
|
||||
"rust/lib/rustlib/{host_triple}/lib/self-contained/**",
|
||||
],
|
||||
allow_empty = True,
|
||||
),
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
load("@rules_rust//rust:toolchain.bzl", "rust_toolchain")
|
||||
|
||||
rust_toolchain(
|
||||
name = "toolchain_impl",
|
||||
rust_doc = ":rustdoc",
|
||||
rust_std = ":rust_std",
|
||||
rustc = ":rustc",
|
||||
linker = ":cc",
|
||||
linker_type = "indirect",
|
||||
rust_objcopy = ":rust_objcopy",
|
||||
rustfmt = ":rustfmt",
|
||||
cargo = ":cargo",
|
||||
clippy_driver = ":clippy_driver",
|
||||
cargo_clippy = ":cargo_clippy",
|
||||
rustc_lib = ":rustc_lib",
|
||||
allocator_library = None,
|
||||
global_allocator_library = None,
|
||||
binary_ext = "",
|
||||
staticlib_ext = ".a",
|
||||
dylib_ext = ".so",
|
||||
stdlib_linkflags = ["-ldl", "-lpthread"],
|
||||
default_edition = "2024",
|
||||
exec_triple = "{host_triple}",
|
||||
target_triple = "{host_triple}",
|
||||
version = "{release}",
|
||||
channel = "stable",
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
toolchain(
|
||||
name = "rust",
|
||||
toolchain = ":toolchain_impl",
|
||||
toolchain_type = "@rules_rust//rust:toolchain_type",
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
Reference in New Issue
Block a user