| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- # 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.
- If `MODULE.bazel.lock` changes locally, it means the host platform hasn't yet
- been added to the lock file. 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.
- Platforms tested with GitHub actions are kept up-to-date. Other platforms may
- fall out of sync on dependency changes, and should be updated with a PR the same
- way a platform is added.
- """
- module(name = "carbon")
- http_archive = use_repo_rule(
- "@bazel_tools//tools/build_defs/repo:http.bzl",
- "http_archive",
- )
- bazel_dep(name = "bazel_skylib", version = "1.5.0")
- bazel_dep(name = "abseil-cpp", version = "20240116.1")
- bazel_dep(name = "re2", version = "2024-03-01")
- bazel_dep(name = "googletest", version = "1.14.0.bcr.1")
- google_benchmark_version = "1.8.3"
- bazel_dep(name = "google_benchmark", version = google_benchmark_version)
- archive_override(
- module_name = "google_benchmark",
- integrity = "sha256-a8GApX0j1NlRVRn5KwyD1hsFtbqxiJYfNqx7BrDZ6c4=",
- patch_strip = 1,
- patches = ["@//bazel/google_benchmark:0001-Use-libpfm-by-default-on-supported-platforms.patch"],
- strip_prefix = "benchmark-{0}".format(google_benchmark_version),
- urls = ["https://github.com/google/benchmark/archive/refs/tags/v{0}.tar.gz".format(google_benchmark_version)],
- )
- # The registry only has an old version. We use that here to avoid a miss but
- # override it with a newer version.
- bazel_dep(name = "libpfm", version = "4.11.0")
- libpfm_version = "4.13.0"
- archive_override(
- module_name = "libpfm",
- integrity = "sha256-0YuXdkx1VSjBBR03bjNUXQ62DG6/hWgENoE/pbBMw9E=",
- patch_strip = 1,
- patches = ["@//bazel/libpfm:0001-Introduce-a-simple-native-Bazel-build.patch"],
- strip_prefix = "libpfm-{0}".format(libpfm_version),
- urls = ["https://sourceforge.net/projects/perfmon2/files/libpfm4/libpfm-{0}.tar.gz".format(libpfm_version)],
- )
- bazel_dep(name = "rules_bison", version = "0.2.2")
- bazel_dep(name = "rules_flex", version = "0.2.1")
- bazel_dep(name = "rules_m4", version = "0.2.3")
- bazel_dep(name = "rules_cc", version = "0.0.9")
- bazel_dep(name = "rules_proto", version = "6.0.0-rc2")
- bazel_dep(name = "protobuf", version = "21.7")
- libprotobuf_mutator_version = "1.1"
- http_archive(
- name = "com_google_libprotobuf_mutator",
- build_file = "@//:third_party/libprotobuf_mutator/BUILD.txt",
- sha256 = "fd299fd72c5cf664259d9bd43a72cb74dc6a8b9604d107fe2d2e90885aeb7c16",
- strip_prefix = "libprotobuf-mutator-{0}".format(libprotobuf_mutator_version),
- urls = ["https://github.com/google/libprotobuf-mutator/archive/v{0}.tar.gz".format(libprotobuf_mutator_version)],
- )
- bazel_dep(name = "bazel_clang_tidy", dev_dependency = True)
- git_override(
- module_name = "bazel_clang_tidy",
- # HEAD as of 2024-03-12.
- commit = "bff5c59c843221b05ef0e37cef089ecc9d24e7da",
- 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")
- bazel_dep(name = "hedron_compile_commands", dev_dependency = True)
- git_override(
- module_name = "hedron_compile_commands",
- # HEAD as of 2024-03-12.
- commit = "204aa593e002cbd177d30f11f54cff3559110bb9",
- remote = "https://github.com/hedronvision/bazel-compile-commands-extractor.git",
- )
- # Required for llvm-project.
- bazel_dep(name = "platforms", version = "0.0.8")
- bazel_dep(name = "zlib", version = "1.3.1.bcr.1", repo_name = "llvm_zlib")
- bazel_dep(name = "zstd", version = "1.5.5.bcr.1", repo_name = "llvm_zstd")
- ###############################################################################
- # llvm-project
- ###############################################################################
- # 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 2024-03-06.
- llvm_project_version = "be15a6b3b68bed7b9d982f25b2e10a273302002a"
- # Load a repository for the raw llvm-project, pre-overlay.
- http_archive(
- name = "llvm-raw",
- build_file_content = "# empty",
- patch_args = ["-p1"],
- patches = [
- "@carbon//bazel/llvm_project:0001_Patch_for_mallinfo2_when_using_Bazel_build_system.patch",
- "@carbon//bazel/llvm_project:0002_Added_Bazel_build_for_compiler_rt_fuzzer.patch",
- "@carbon//bazel/llvm_project:0003_Add_library_for_clangd.patch",
- ],
- sha256 = "1e6cc2eb634438a59fb5e1b87e7bb35883fb680dc2934f431150db22fb3a6c09",
- strip_prefix = "llvm-project-{0}".format(llvm_project_version),
- urls = ["https://github.com/llvm/llvm-project/archive/{0}.tar.gz".format(llvm_project_version)],
- )
- # 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 = "0.31.0")
- python = use_extension("@rules_python//python/extensions:python.bzl", "python")
- python.toolchain(
- python_version = "3.11",
- )
- use_repo(python, "python_versions")
|