• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1"""bazelbuild/rules_rust - bzlmod cross-compilation example"""
2
3module(
4    name = "cross_compile_example",
5    version = "0.0.0",
6)
7
8bazel_dep(name = "bazel_skylib", version = "1.5.0")
9bazel_dep(name = "platforms", version = "0.0.8")
10bazel_dep(name = "toolchains_llvm", version = "0.10.3")
11
12# rules_rust still needs a cpp toolchain, so provide a cross-compiling one here
13llvm = use_extension("@toolchains_llvm//toolchain/extensions:llvm.bzl", "llvm")
14llvm.toolchain(
15    name = "llvm_toolchain",
16    llvm_version = "16.0.0",
17    sysroot = {"linux-aarch64": "@@org_chromium_sysroot_linux_aarch64//:sysroot"},
18)
19use_repo(llvm, "llvm_toolchain", "llvm_toolchain_llvm")
20
21register_toolchains("@llvm_toolchain//:all")
22
23bazel_dep(name = "rules_rust", version = "0.0.0")
24local_path_override(
25    module_name = "rules_rust",
26    path = "../../..",
27)
28
29rust = use_extension("@rules_rust//rust:extensions.bzl", "rust")
30rust.toolchain(
31    edition = "2021",
32    extra_target_triples = [
33        "aarch64-unknown-linux-gnu",
34        "x86_64-unknown-linux-gnu",
35    ],
36)
37use_repo(rust, "rust_toolchains")
38
39register_toolchains("@rust_toolchains//:all")
40