1# This file is licensed under the Apache License v2.0 with LLVM Exceptions. 2# See https://llvm.org/LICENSE.txt for license information. 3# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 4 5"""An example WORKSPACE for configuring LLVM using http_archive.""" 6 7workspace(name = "http_archive_example") 8 9load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") 10 11SKYLIB_VERSION = "1.0.3" 12 13http_archive( 14 name = "bazel_skylib", 15 sha256 = "97e70364e9249702246c0e9444bccdc4b847bed1eb03c5a3ece4f83dfe6abc44", 16 urls = [ 17 "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/{version}/bazel-skylib-{version}.tar.gz".format(version=SKYLIB_VERSION), 18 "https://github.com/bazelbuild/bazel-skylib/releases/download/{version}/bazel-skylib-{version}.tar.gz".format(version=SKYLIB_VERSION), 19 ], 20) 21 22# Replace with the LLVM commit you want to use. 23LLVM_COMMIT = "09ac97ce350316b95b8cddb796d52f71b6f68296" 24 25# The easiest way to calculate this for a new commit is to set it to empty and 26# then run a bazel build and it will report the digest necessary to cache the 27# archive and make the build reproducible. 28LLVM_SHA256 = "2fb1aa06d12f8db349a27426cb0ced062987c5c2a75143c69f4284929e2750ff" 29 30# FIXME: It shouldn't be necessary to use http_archive twice here. Caching 31# should mean that this isn't too expensive though. 32 33http_archive( 34 name = "llvm-project-raw", 35 build_file_content = "#empty", 36 sha256 = LLVM_SHA256, 37 strip_prefix = "llvm-project-" + LLVM_COMMIT, 38 urls = ["https://github.com/llvm/llvm-project/archive/{commit}.tar.gz".format(commit = LLVM_COMMIT)], 39) 40 41http_archive( 42 name = "llvm-bazel", 43 sha256 = LLVM_SHA256, 44 strip_prefix = "llvm-project-{}/utils/bazel".format(LLVM_COMMIT), 45 urls = ["https://github.com/llvm/llvm-project/archive/{commit}.tar.gz".format(commit = LLVM_COMMIT)], 46) 47 48load("@llvm-bazel//:configure.bzl", "llvm_configure", "llvm_disable_optional_support_deps") 49 50llvm_configure( 51 name = "llvm-project", 52 src_path = ".", 53 src_workspace = "@llvm-project-raw//:WORKSPACE", 54) 55 56# Disables optional dependencies for Support like zlib and terminfo. You may 57# instead want to configure them using the macros in the corresponding bzl 58# files. 59llvm_disable_optional_support_deps() 60