mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-09-24 20:40:11 +01:00
This has been working really well for me, is incredibly faster than the other approach, and some commits continue to hit bugs in the old system where files that aren't even going to be run through `clangd-tidy` end up tripping up the execution. Hopefully all of that is resolved with the new version.
139 lines
5.3 KiB
Python
139 lines
5.3 KiB
Python
# Part of the Carbon Language project, under the Apache License v2.0 with LLVM
|
|
# Exceptions. See /LICENSE for license information.
|
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
|
|
"""Bazel modules.
|
|
|
|
`MODULE.bazel.lock` may change locally when `bazel` is executed. This means one
|
|
of:
|
|
|
|
1. An input is changing, typically `MODULE.bazel` or `.bazelversion`.
|
|
- Running `bazel mod deps` provides a canonical update to
|
|
`MODULE.bazel.lock`; include the changes.
|
|
- GitHub test actions may also identify platform-specific lockfile
|
|
updates.
|
|
2. The host platform hasn't yet been added to the lock file.
|
|
- Platforms tested with GitHub actions are kept up-to-date. Other
|
|
platforms may fall out of sync due to `bazel` or dependency changes,
|
|
and should be updated with a PR the same way a platform is added.
|
|
- Running `bazel mod deps` provides a canonical update to
|
|
`MODULE.bazel.lock`; create a PR with those changes in order to include
|
|
the host platform.
|
|
|
|
For updates, run `scripts/query_module_versions.py` to list the latest package
|
|
versions.
|
|
"""
|
|
|
|
module(name = "carbon")
|
|
|
|
bazel_dep(name = "abseil-cpp", version = "20260107.1")
|
|
bazel_dep(name = "bazel_skylib", version = "1.9.0")
|
|
bazel_dep(name = "boost.unordered", version = "1.90.0.bcr.1")
|
|
bazel_dep(name = "google_benchmark", version = "1.9.5")
|
|
bazel_dep(name = "googletest", version = "1.17.0.bcr.2")
|
|
bazel_dep(name = "libpfm", version = "4.13.0")
|
|
bazel_dep(name = "re2", version = "2025-11-05.bcr.1")
|
|
bazel_dep(name = "rules_cc", version = "0.2.17")
|
|
bazel_dep(name = "rules_pkg", version = "1.2.0")
|
|
bazel_dep(name = "rules_shell", version = "0.6.1")
|
|
bazel_dep(name = "tcmalloc", version = "0.0.0-20250927-12f2552")
|
|
bazel_dep(name = "tree-sitter-bazel", version = "0.26.5")
|
|
|
|
bazel_dep(name = "wolfd_bazel_compile_commands", version = "0.5.2", dev_dependency = True)
|
|
bazel_dep(name = "bazel_clang_tidy", dev_dependency = True)
|
|
git_override(
|
|
module_name = "bazel_clang_tidy",
|
|
# HEAD as of 2026-01-28.
|
|
commit = "c4d35e0d0b838309358e57a2efed831780f85cd0",
|
|
remote = "https://github.com/erenon/bazel_clang_tidy.git",
|
|
)
|
|
|
|
bazel_cc_toolchain = use_extension(
|
|
"//bazel/cc_toolchains:clang_configuration.bzl",
|
|
"clang_toolchain_extension",
|
|
)
|
|
use_repo(bazel_cc_toolchain, "bazel_cc_toolchain")
|
|
|
|
register_toolchains("@bazel_cc_toolchain//:all")
|
|
|
|
register_toolchains("//toolchain/install:all")
|
|
|
|
# Required for llvm-project.
|
|
bazel_dep(name = "platforms", version = "1.0.0")
|
|
bazel_dep(name = "protobuf", version = "34.0.bcr.1", repo_name = "com_google_protobuf")
|
|
bazel_dep(name = "zlib-ng", version = "2.0.7", repo_name = "llvm_zlib")
|
|
bazel_dep(name = "zstd", version = "1.5.7.bcr.1", repo_name = "llvm_zstd")
|
|
|
|
###############################################################################
|
|
# llvm-project
|
|
###############################################################################
|
|
|
|
# Load a repository for the raw llvm-project, pre-overlay.
|
|
bazel_dep(name = "llvm-raw")
|
|
git_override(
|
|
module_name = "llvm-raw",
|
|
build_file_content = "# empty",
|
|
# We pin to specific upstream commits and try to track top-of-tree
|
|
# reasonably closely rather than pinning to a specific release.
|
|
# HEAD as of 2026-04-01.
|
|
commit = "b71eacea7687f68c11299e3bda5654fbbaa1e20e",
|
|
patch_cmds = ["echo \"module(name='llvm-raw')\" > MODULE.bazel"],
|
|
patch_strip = 1,
|
|
patches = [
|
|
"//bazel/llvm_project:0001_Patch_for_mallinfo2_when_using_Bazel_build_system.patch",
|
|
"//bazel/llvm_project:0002_Added_Bazel_build_for_compiler_rt_fuzzer.patch",
|
|
"//bazel/llvm_project:0004_Introduce_basic_sources_exporting_for_libunwind.patch",
|
|
"//bazel/llvm_project:0005_Introduce_basic_sources_exporting_for_libcxx_and_libcxxabi.patch",
|
|
"//bazel/llvm_project:0009_Introduce_starlark_exporting_compiler-rt_build_information.patch",
|
|
],
|
|
remote = "https://github.com/llvm/llvm-project.git",
|
|
)
|
|
|
|
# Apply the overlay to produce llvm-project.
|
|
llvm_project = use_extension(
|
|
"//bazel/llvm_project:llvm_project.bzl",
|
|
"llvm_project",
|
|
)
|
|
use_repo(llvm_project, "llvm-project")
|
|
|
|
###############################################################################
|
|
# Python
|
|
###############################################################################
|
|
|
|
bazel_dep(name = "rules_python", version = "1.9.0")
|
|
|
|
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
|
|
python.toolchain(
|
|
python_version = "3.11",
|
|
)
|
|
use_repo(python, "python_versions")
|
|
|
|
###############################################################################
|
|
# Bazel integration testing
|
|
###############################################################################
|
|
|
|
bazel_dep(
|
|
name = "rules_bazel_integration_test",
|
|
version = "0.37.1",
|
|
dev_dependency = True,
|
|
)
|
|
|
|
# We test against our current Bazel version, the latest release, and the latest
|
|
# release candidate.
|
|
bazel_binaries = use_extension(
|
|
"@rules_bazel_integration_test//:extensions.bzl",
|
|
"bazel_binaries",
|
|
dev_dependency = True,
|
|
)
|
|
bazel_binaries.download(version_file = "//:.bazelversion")
|
|
bazel_binaries.download(version = "latest")
|
|
bazel_binaries.download(version = "last_rc")
|
|
use_repo(
|
|
bazel_binaries,
|
|
"bazel_binaries",
|
|
"bazel_binaries_bazelisk",
|
|
"build_bazel_bazel_.bazelversion",
|
|
"build_bazel_bazel_last_rc",
|
|
"build_bazel_bazel_latest",
|
|
)
|