MODULE.bazel 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. # Part of the Carbon Language project, under the Apache License v2.0 with LLVM
  2. # Exceptions. See /LICENSE for license information.
  3. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  4. """Bazel modules."""
  5. module(name = "carbon")
  6. http_archive = use_repo_rule(
  7. "@bazel_tools//tools/build_defs/repo:http.bzl",
  8. "http_archive",
  9. )
  10. bazel_dep(name = "bazel_skylib", version = "1.5.0")
  11. bazel_dep(
  12. name = "abseil-cpp",
  13. version = "20230802.0",
  14. repo_name = "com_google_absl",
  15. )
  16. bazel_dep(
  17. name = "re2",
  18. version = "2023-11-01",
  19. repo_name = "com_googlesource_code_re2",
  20. )
  21. bazel_dep(
  22. name = "googletest",
  23. version = "1.14.0.bcr.1",
  24. repo_name = "com_google_googletest",
  25. )
  26. bazel_dep(
  27. name = "google_benchmark",
  28. version = "1.8.3",
  29. repo_name = "com_github_google_benchmark",
  30. )
  31. bazel_dep(name = "rules_bison", version = "0.2.2")
  32. bazel_dep(name = "rules_flex", version = "0.2.1")
  33. bazel_dep(name = "rules_m4", version = "0.2.3")
  34. bazel_dep(name = "rules_cc", version = "0.0.9")
  35. bazel_dep(name = "rules_proto", version = "6.0.0-rc1")
  36. bazel_dep(
  37. name = "protobuf",
  38. version = "21.7",
  39. repo_name = "com_google_protobuf",
  40. )
  41. libprotobuf_mutator_version = "1.1"
  42. http_archive(
  43. name = "com_google_libprotobuf_mutator",
  44. build_file = "@//:third_party/libprotobuf_mutator/BUILD.txt",
  45. sha256 = "fd299fd72c5cf664259d9bd43a72cb74dc6a8b9604d107fe2d2e90885aeb7c16",
  46. strip_prefix = "libprotobuf-mutator-{0}".format(libprotobuf_mutator_version),
  47. urls = ["https://github.com/google/libprotobuf-mutator/archive/v{0}.tar.gz".format(libprotobuf_mutator_version)],
  48. )
  49. bazel_cc_toolchain = use_extension(
  50. "//bazel/cc_toolchains:clang_configuration.bzl",
  51. "clang_toolchain_extension",
  52. )
  53. use_repo(bazel_cc_toolchain, "bazel_cc_toolchain")
  54. register_toolchains("@bazel_cc_toolchain//:all")
  55. ###############################################################################
  56. # llvm-project
  57. ###############################################################################
  58. # We pin to specific upstream commits and try to track top-of-tree reasonably
  59. # closely rather than pinning to a specific release.
  60. llvm_project_version = "3d51010a3350660160981c6b8e624dcc87c208a3"
  61. # Required for llvm-project.
  62. bazel_dep(name = "platforms", version = "0.0.8")
  63. # zlib and zstd dependencies are copied from
  64. bazel_dep(name = "zlib", version = "1.3", repo_name = "llvm_zlib")
  65. bazel_dep(name = "zstd", version = "1.5.5", repo_name = "llvm_zstd")
  66. # Load a repository for the raw llvm-project, pre-overlay.
  67. http_archive(
  68. name = "llvm-raw",
  69. build_file_content = "# empty",
  70. patch_args = ["-p1"],
  71. patches = [
  72. "@carbon//bazel/llvm_project:0001_Patch_for_mallinfo2_when_using_Bazel_build_system.patch",
  73. "@carbon//bazel/llvm_project:0002_Added_Bazel_build_for_compiler_rt_fuzzer.patch",
  74. "@carbon//bazel/llvm_project:0003_Add_library_for_clangd.patch",
  75. ],
  76. sha256 = "efbca707a6eb1c714b849de120309070eef282660c0f4be5b68efef62cc95cf5",
  77. strip_prefix = "llvm-project-{0}".format(llvm_project_version),
  78. urls = ["https://github.com/llvm/llvm-project/archive/{0}.tar.gz".format(llvm_project_version)],
  79. )
  80. # Apply the overlay to produce llvm-project.
  81. llvm_project = use_extension(
  82. "//bazel/llvm_project:llvm_project.bzl",
  83. "llvm_project",
  84. )
  85. use_repo(llvm_project, "llvm-project")
  86. ###############################################################################
  87. # Python
  88. ###############################################################################
  89. bazel_dep(name = "rules_python", version = "0.27.1")
  90. python = use_extension("@rules_python//python/extensions:python.bzl", "python")
  91. python.toolchain(
  92. python_version = "3.11",
  93. )
  94. use_repo(python, "python_versions")
  95. # Create a central repo that knows about the pip dependencies.
  96. pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
  97. pip.parse(
  98. hub_name = "py_deps",
  99. python_version = "3.11",
  100. requirements_lock = "//github_tools:requirements.txt",
  101. )
  102. use_repo(pip, "py_deps")