xref: /aosp_15_r20/external/sandboxed-api/sandboxed_api/bazel/sapi_deps.bzl (revision ec63e07ab9515d95e79c211197c445ef84cefa6a)
1# Copyright 2019 Google LLC
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#     https://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15"""Loads dependencies needed to compile Sandboxed API for 3rd-party consumers."""
16
17load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
18load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
19load("//sandboxed_api/bazel:llvm_config.bzl", "llvm_configure")
20load("//sandboxed_api/bazel:repositories.bzl", "autotools_repository")
21
22def sapi_deps():
23    """Loads common dependencies needed to compile Sandboxed API."""
24
25    # Bazel Skylib
26    maybe(
27        http_archive,
28        name = "bazel_skylib",
29        sha256 = "66ffd9315665bfaafc96b52278f57c7e2dd09f5ede279ea6d39b2be471e7e3aa",
30        urls = [
31            "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.4.2/bazel-skylib-1.4.2.tar.gz",
32            "https://github.com/bazelbuild/bazel-skylib/releases/download/1.4.2/bazel-skylib-1.4.2.tar.gz",
33        ],
34    )
35
36    # Abseil
37    maybe(
38        http_archive,
39        name = "com_google_absl",
40        sha256 = "1ca4c7431b0818a10507af8eac34a1873e4e786a18ecd3f04d8faf3a0874e8bb",  # 2023-08-24
41        strip_prefix = "abseil-cpp-8ebad34c3fa54a9ad2f46ca8cab98e75c4f750bf",
42        urls = ["https://github.com/abseil/abseil-cpp/archive/8ebad34c3fa54a9ad2f46ca8cab98e75c4f750bf.zip"],
43    )
44    maybe(
45        http_archive,
46        name = "com_google_absl_py",
47        sha256 = "3d0278d88bbd52993f381d1e20887fa30f0556f6263b3f7bfcad62c69f39b38e",  # 2021-03-09
48        strip_prefix = "abseil-py-9954557f9df0b346a57ff82688438c55202d2188",
49        urls = ["https://github.com/abseil/abseil-py/archive/9954557f9df0b346a57ff82688438c55202d2188.zip"],
50    )
51
52    # Abseil-py dependency for Python 2/3 compatiblity
53    maybe(
54        http_archive,
55        name = "six_archive",
56        build_file = "@com_google_sandboxed_api//sandboxed_api:bazel/external/six.BUILD",
57        sha256 = "30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259",  # 2020-05-21
58        strip_prefix = "six-1.15.0",
59        urls = ["https://pypi.python.org/packages/source/s/six/six-1.15.0.tar.gz"],
60    )
61
62    # Protobuf
63    maybe(
64        http_archive,
65        name = "com_google_protobuf",
66        sha256 = "a700a49470d301f1190a487a923b5095bf60f08f4ae4cac9f5f7c36883d17971",  # 2023-07-06
67        strip_prefix = "protobuf-23.4",
68        urls = ["https://github.com/protocolbuffers/protobuf/releases/download/v23.4/protobuf-23.4.tar.gz"],
69    )
70
71    # libcap
72    http_archive(
73        name = "org_kernel_libcap",
74        build_file = "@com_google_sandboxed_api//sandboxed_api:bazel/external/libcap.BUILD",
75        sha256 = "260b549c154b07c3cdc16b9ccc93c04633c39f4fb6a4a3b8d1fa5b8a9c3f5fe8",  # 2019-04-16
76        strip_prefix = "libcap-2.27",
77        urls = ["https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.27.tar.gz"],
78    )
79
80    # libffi
81    autotools_repository(
82        name = "org_sourceware_libffi",
83        build_file = "@com_google_sandboxed_api//sandboxed_api:bazel/external/libffi.BUILD",
84        sha256 = "653ffdfc67fbb865f39c7e5df2a071c0beb17206ebfb0a9ecb18a18f63f6b263",  # 2019-11-02
85        strip_prefix = "libffi-3.3-rc2",
86        urls = ["https://github.com/libffi/libffi/releases/download/v3.3-rc2/libffi-3.3-rc2.tar.gz"],
87    )
88
89    # libunwind
90    autotools_repository(
91        name = "org_gnu_libunwind",
92        build_file = "@com_google_sandboxed_api//sandboxed_api:bazel/external/libunwind.BUILD",
93        configure_args = [
94            "--disable-documentation",
95            "--disable-minidebuginfo",
96            "--disable-shared",
97            "--enable-ptrace",
98        ],
99        sha256 = "4a6aec666991fb45d0889c44aede8ad6eb108071c3554fcdff671f9c94794976",  # 2021-12-01
100        strip_prefix = "libunwind-1.6.2",
101        urls = ["https://github.com/libunwind/libunwind/releases/download/v1.6.2/libunwind-1.6.2.tar.gz"],
102    )
103
104    # GoogleTest/GoogleMock
105    maybe(
106        http_archive,
107        name = "com_google_googletest",
108        sha256 = "a217118c2c36a3632b594af7ff98111a65bb2b980b726a7fa62305e02a998440",  # 2023-06-06
109        strip_prefix = "googletest-334704df263b480a3e9e7441ed3292a5e30a37ec",
110        urls = ["https://github.com/google/googletest/archive/334704df263b480a3e9e7441ed3292a5e30a37ec.zip"],
111    )
112
113    # Google Benchmark
114    maybe(
115        http_archive,
116        name = "com_google_benchmark",
117        sha256 = "342705876335bf894147e052d0dac141fe15962034b41bef5aa59c4b279ca89c",  # 2023-05-30
118        strip_prefix = "benchmark-604f6fd3f4b34a84ec4eb4db81d842fa4db829cd",
119        urls = ["https://github.com/google/benchmark/archive/604f6fd3f4b34a84ec4eb4db81d842fa4db829cd.zip"],
120    )
121
122    # LLVM/libclang
123    maybe(
124        llvm_configure,
125        name = "llvm-project",
126        commit = "2c494f094123562275ae688bd9e946ae2a0b4f8b",  # 2022-03-31
127        sha256 = "59b9431ae22f0ea5f2ce880925c0242b32a9e4f1ae8147deb2bb0fc19b53fa0d",
128        system_libraries = True,  # Prefer system libraries
129    )
130