| # Part of the Crubit project, under the Apache License v2.0 with LLVM |
| # Exceptions. See /LICENSE for license information. |
| # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| module( |
| name = "rules_crubit", |
| version = "0.0.1", |
| ) |
| |
| bazel_dep(name = "rules_rust", version = "0.71.3") |
| bazel_dep(name = "rules_cc", version = "0.2.19") |
| bazel_dep(name = "rules_shell", version = "0.6.1") |
| bazel_dep(name = "abseil-cpp", version = "20260526.0") |
| bazel_dep(name = "bazel_skylib", version = "1.9.0") |
| bazel_dep(name = "fuzztest", version = "20250214.0") |
| bazel_dep(name = "google_benchmark", version = "1.9.1") |
| bazel_dep(name = "googletest", version = "1.17.0") |
| bazel_dep(name = "platforms", version = "1.1.0") |
| bazel_dep(name = "protobuf", version = "36.1.bcr.1") |
| bazel_dep(name = "re2", version = "2024-07-02.bcr.1") |
| bazel_dep(name = "rules_license", version = "1.0.0") |
| bazel_dep(name = "rules_proto", version = "7.1.0") |
| bazel_dep(name = "rules_python", version = "1.7.0") |
| bazel_dep(name = "toolchains_llvm", version = "1.8.0") |
| |
| # We don't directly use `rules_foreign_cc`, but *something* does, and depends on an |
| # out of date version that doesn't work with newer Bazel releases. So here we force |
| # it to be a newer version. |
| bazel_dep(name = "rules_foreign_cc", version = "0.15.0") |
| |
| ######################################################################## |
| # Building of Clang/LLVM from sources |
| llvm_ext = use_extension("//bazel:llvm_extension.bzl", "llvm_extension") |
| llvm_ext.configure(commit = "ab547095ead5464dc024d66264d9b8a987f429f3") |
| use_repo(llvm_ext, "llvm-raw", "llvm_libxml2", "llvm_zlib", "llvm_zstd") |
| |
| llvm_configure = use_repo_rule("@llvm-raw//utils/bazel:configure.bzl", "llvm_configure") |
| |
| llvm_configure( |
| name = "llvm-project", |
| # Crubit generates source bindings, not machine code, |
| # so only ask for a few target architecures. |
| targets = [ |
| "AArch64", |
| "X86", |
| ], |
| ) |
| |
| ######################################################################## |
| # Rust Crate Dependencies |
| crate = use_extension("@rules_rust//crate_universe:extensions.bzl", "crate") |
| crate.from_cargo( |
| name = "crate_index", |
| cargo_lockfile = "//:Cargo.lock", |
| lockfile = "//:Cargo.Bazel.lock", |
| manifests = [ |
| "//:Cargo.toml", |
| ], |
| ) |
| use_repo(crate, "crate_index") |
| |
| crubit_toolchains = use_extension("//bazel:extensions.bzl", "crubit_toolchains") |
| crubit_toolchains.configure( |
| llvm_version = "22.1.0", |
| rust_version = "nightly/2026-07-01", |
| ) |
| use_repo(crubit_toolchains, "llvm_toolchain", "llvm_version_check", "rust_toolchains") |
| |
| register_toolchains( |
| "@rust_toolchains//:all", |
| "@llvm_toolchain//:all", |
| "//common/bazel_support/toolchains:cc_bindings_from_rs_on_demand_linux", |
| ) |
| |
| # TODO(b/379928127): Remove this override once cl/974009395 is released in BCR. |
| single_version_override( |
| module_name = "protobuf", |
| patch_strip = 1, |
| patches = [ |
| "//patches:protobuf_visibility.patch", |
| ], |
| version = "36.1.bcr.1", |
| ) |
| |
| # TODO(b/379928127): Remove this override once cl/974008598 is released in BCR. |
| single_version_override( |
| module_name = "rules_rust", |
| patch_strip = 1, |
| patches = [ |
| "//patches:rules_rust_transitive_repin.patch", |
| ], |
| version = "0.71.3", |
| ) |