|  | # This file is licensed under the Apache License v2.0 with LLVM Exceptions. | 
|  | # See https://llvm.org/LICENSE.txt for license information. | 
|  | # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | 
|  |  | 
|  | load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") | 
|  | load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") | 
|  |  | 
|  | SKYLIB_VERSION = "1.7.1" | 
|  |  | 
|  | http_archive( | 
|  | name = "bazel_skylib", | 
|  | sha256 = "bc283cdfcd526a52c3201279cda4bc298652efa898b10b4db0837dc51652756f", | 
|  | urls = [ | 
|  | "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/{version}/bazel-skylib-{version}.tar.gz".format(version = SKYLIB_VERSION), | 
|  | "https://github.com/bazelbuild/bazel-skylib/releases/download/{version}/bazel-skylib-{version}.tar.gz".format(version = SKYLIB_VERSION), | 
|  | ], | 
|  | ) | 
|  |  | 
|  | http_archive( | 
|  | name = "rules_cc", | 
|  | sha256 = "abc605dd850f813bb37004b77db20106a19311a96b2da1c92b789da529d28fe1", | 
|  | strip_prefix = "rules_cc-0.0.17", | 
|  | urls = ["https://github.com/bazelbuild/rules_cc/releases/download/0.0.17/rules_cc-0.0.17.tar.gz"], | 
|  | ) | 
|  |  | 
|  | new_local_repository( | 
|  | name = "llvm-raw", | 
|  | build_file_content = "# empty", | 
|  | path = "../../", | 
|  | ) | 
|  |  | 
|  | load("@llvm-raw//utils/bazel:configure.bzl", "llvm_configure") | 
|  |  | 
|  | llvm_configure(name = "llvm-project") | 
|  |  | 
|  | maybe( | 
|  | http_archive, | 
|  | name = "rules_python", | 
|  | sha256 = "4f7e2aa1eb9aa722d96498f5ef514f426c1f55161c3c9ae628c857a7128ceb07", | 
|  | strip_prefix = "rules_python-1.0.0", | 
|  | url = "https://github.com/bazelbuild/rules_python/releases/download/1.0.0/rules_python-1.0.0.tar.gz", | 
|  | ) | 
|  |  | 
|  | maybe( | 
|  | http_archive, | 
|  | name = "llvm_zlib", | 
|  | build_file = "@llvm-raw//utils/bazel/third_party_build:zlib-ng.BUILD", | 
|  | sha256 = "e36bb346c00472a1f9ff2a0a4643e590a254be6379da7cddd9daeb9a7f296731", | 
|  | strip_prefix = "zlib-ng-2.0.7", | 
|  | urls = [ | 
|  | "https://github.com/zlib-ng/zlib-ng/archive/refs/tags/2.0.7.zip", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | maybe( | 
|  | http_archive, | 
|  | name = "vulkan_headers", | 
|  | build_file = "@llvm-raw//utils/bazel/third_party_build:vulkan_headers.BUILD", | 
|  | sha256 = "19f491784ef0bc73caff877d11c96a48b946b5a1c805079d9006e3fbaa5c1895", | 
|  | strip_prefix = "Vulkan-Headers-9bd3f561bcee3f01d22912de10bb07ce4e23d378", | 
|  | urls = [ | 
|  | "https://github.com/KhronosGroup/Vulkan-Headers/archive/9bd3f561bcee3f01d22912de10bb07ce4e23d378.tar.gz", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | load("@llvm-raw//utils/bazel:vulkan_sdk.bzl", "vulkan_sdk_setup") | 
|  |  | 
|  | maybe( | 
|  | vulkan_sdk_setup, | 
|  | name = "vulkan_sdk", | 
|  | ) | 
|  |  | 
|  | http_archive( | 
|  | name = "build_bazel_apple_support", | 
|  | sha256 = "c4bb2b7367c484382300aee75be598b92f847896fb31bbd22f3a2346adf66a80", | 
|  | url = "https://github.com/bazelbuild/apple_support/releases/download/1.15.1/apple_support.1.15.1.tar.gz", | 
|  | ) | 
|  |  | 
|  | load( | 
|  | "@build_bazel_apple_support//lib:repositories.bzl", | 
|  | "apple_support_dependencies", | 
|  | ) | 
|  |  | 
|  | apple_support_dependencies() | 
|  |  | 
|  | # llvm libc math tests reply on `mpfr`. | 
|  | # The availability of `mpfr` is controlled by a flag and can be either `disable`, `system` or `external`. | 
|  | # Continuous integration uses `system` to speed up the build process (see .bazelrc). | 
|  | # Otherwise by default it is set to `external`: `mpfr` and `gmp` are built from source by using `rules_foreign_cc`. | 
|  | # Note: that building from source requires `m4` to be installed on the host machine. | 
|  | # This is a known issue: https://github.com/bazelbuild/rules_foreign_cc/issues/755. | 
|  |  | 
|  | http_archive( | 
|  | name = "rules_foreign_cc", | 
|  | sha256 = "4b33d62cf109bcccf286b30ed7121129cc34cf4f4ed9d8a11f38d9108f40ba74", | 
|  | strip_prefix = "rules_foreign_cc-0.11.1", | 
|  | url = "https://github.com/bazelbuild/rules_foreign_cc/releases/download/0.11.1/rules_foreign_cc-0.11.1.tar.gz", | 
|  | ) | 
|  |  | 
|  | load("@rules_foreign_cc//foreign_cc:repositories.bzl", "rules_foreign_cc_dependencies") | 
|  |  | 
|  | rules_foreign_cc_dependencies() | 
|  |  | 
|  | maybe( | 
|  | http_archive, | 
|  | name = "gmp", | 
|  | build_file = "@llvm-raw//utils/bazel/third_party_build:gmp.BUILD", | 
|  | sha256 = "fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2", | 
|  | strip_prefix = "gmp-6.2.1", | 
|  | urls = [ | 
|  | "https://gmplib.org/download/gmp/gmp-6.2.1.tar.xz", | 
|  | "https://ftp.gnu.org/gnu/gmp/gmp-6.2.1.tar.xz", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | # https://www.mpfr.org/mpfr-current/ | 
|  | # | 
|  | # When updating to a newer version, don't use URLs with "mpfr-current" in them. | 
|  | # Instead, find a stable URL like the one used currently. | 
|  | maybe( | 
|  | http_archive, | 
|  | name = "mpfr", | 
|  | build_file = "@llvm-raw//utils/bazel/third_party_build:mpfr.BUILD", | 
|  | sha256 = "826cbb24610bd193f36fde172233fb8c009f3f5c2ad99f644d0dea2e16a20e42", | 
|  | strip_prefix = "mpfr-4.2.2", | 
|  | urls = ["https://www.mpfr.org/mpfr-current/mpfr-4.2.2.tar.gz"], | 
|  | ) | 
|  |  | 
|  | maybe( | 
|  | http_archive, | 
|  | name = "mpc", | 
|  | build_file = "@llvm-raw//utils/bazel/third_party_build:mpc.BUILD", | 
|  | sha256 = "ab642492f5cf882b74aa0cb730cd410a81edcdbec895183ce930e706c1c759b8", | 
|  | strip_prefix = "mpc-1.3.1", | 
|  | urls = ["https://ftp.gnu.org/gnu/mpc/mpc-1.3.1.tar.gz"], | 
|  | ) | 
|  |  | 
|  | maybe( | 
|  | http_archive, | 
|  | name = "pfm", | 
|  | build_file = "@llvm-raw//utils/bazel/third_party_build:pfm.BUILD", | 
|  | sha256 = "d18b97764c755528c1051d376e33545d0eb60c6ebf85680436813fa5b04cc3d1", | 
|  | strip_prefix = "libpfm-4.13.0", | 
|  | urls = ["https://versaweb.dl.sourceforge.net/project/perfmon2/libpfm4/libpfm-4.13.0.tar.gz"], | 
|  | ) | 
|  |  | 
|  | maybe( | 
|  | http_archive, | 
|  | name = "llvm_zstd", | 
|  | build_file = "@llvm-raw//utils/bazel/third_party_build:zstd.BUILD", | 
|  | sha256 = "7c42d56fac126929a6a85dbc73ff1db2411d04f104fae9bdea51305663a83fd0", | 
|  | strip_prefix = "zstd-1.5.2", | 
|  | urls = [ | 
|  | "https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | maybe( | 
|  | http_archive, | 
|  | name = "pybind11", | 
|  | build_file = "@llvm-raw//utils/bazel/third_party_build:pybind.BUILD", | 
|  | sha256 = "201966a61dc826f1b1879a24a3317a1ec9214a918c8eb035be2f30c3e9cfbdcb", | 
|  | strip_prefix = "pybind11-2.10.3", | 
|  | url = "https://github.com/pybind/pybind11/archive/v2.10.3.zip", | 
|  | ) | 
|  |  | 
|  | maybe( | 
|  | http_archive, | 
|  | name = "pyyaml", | 
|  | build_file = "@llvm-raw//utils/bazel/third_party_build:pyyaml.BUILD", | 
|  | sha256 = "f0a35d7f282a6d6b1a4f3f3965ef5c124e30ed27a0088efb97c0977268fd671f", | 
|  | strip_prefix = "pyyaml-5.1/lib3", | 
|  | url = "https://github.com/yaml/pyyaml/archive/refs/tags/5.1.zip", | 
|  | ) | 
|  |  | 
|  | maybe( | 
|  | http_archive, | 
|  | name = "robin_map", | 
|  | build_file = "@llvm-raw//utils/bazel/third_party_build:robin_map.BUILD", | 
|  | sha256 = "a8424ad3b0affd4c57ed26f0f3d8a29604f0e1f2ef2089f497f614b1c94c7236", | 
|  | strip_prefix = "robin-map-1.3.0", | 
|  | url = "https://github.com/Tessil/robin-map/archive/refs/tags/v1.3.0.tar.gz", | 
|  | ) | 
|  |  | 
|  | maybe( | 
|  | http_archive, | 
|  | name = "nanobind", | 
|  | build_file = "@llvm-raw//utils/bazel/third_party_build:nanobind.BUILD", | 
|  | sha256 = "8ce3667dce3e64fc06bfb9b778b6f48731482362fb89a43da156632266cd5a90", | 
|  | strip_prefix = "nanobind-2.9.2", | 
|  | url = "https://github.com/wjakob/nanobind/archive/refs/tags/v2.9.2.tar.gz", | 
|  | ) | 
|  |  | 
|  | load("@rules_python//python:repositories.bzl", "py_repositories", "python_register_toolchains") | 
|  |  | 
|  | py_repositories() | 
|  |  | 
|  | python_register_toolchains( | 
|  | name = "python_3_12", | 
|  | python_version = "3.12", | 
|  | ) | 
|  |  | 
|  | maybe( | 
|  | http_archive, | 
|  | name = "rules_shell", | 
|  | sha256 = "e6b87c89bd0b27039e3af2c5da01147452f240f75d505f5b6880874f31036307", | 
|  | strip_prefix = "rules_shell-0.6.1", | 
|  | url = "https://github.com/bazelbuild/rules_shell/releases/download/v0.6.1/rules_shell-v0.6.1.tar.gz", | 
|  | ) | 
|  |  | 
|  | load("@rules_shell//shell:repositories.bzl", "rules_shell_dependencies", "rules_shell_toolchains") | 
|  |  | 
|  | rules_shell_dependencies() | 
|  |  | 
|  | rules_shell_toolchains() |