xref: /aosp_15_r20/external/bazelbuild-rules_rust/test/deps.bzl (revision d4726bddaa87cc4778e7472feed243fa4b6c267f)
1"""A module defining dependencies of the `rules_rust` tests"""
2
3load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
4load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
5load("//test/generated_inputs:external_repo.bzl", "generated_inputs_in_external_repo")
6load("//test/load_arbitrary_tool:load_arbitrary_tool_test.bzl", "load_arbitrary_tool_test")
7load("//test/unit/toolchain:toolchain_test_utils.bzl", "rules_rust_toolchain_test_target_json_repository")
8
9_LIBC_BUILD_FILE_CONTENT = """\
10load("@rules_rust//rust:defs.bzl", "rust_library")
11
12rust_library(
13    name = "libc",
14    srcs = glob(["src/**/*.rs"]),
15    edition = "2015",
16    rustc_flags = [
17        # In most cases, warnings in 3rd party crates are not interesting as
18        # they're out of the control of consumers. The flag here silences
19        # warnings. For more details see:
20        # https://doc.rust-lang.org/rustc/lints/levels.html
21        "--cap-lints=allow",
22    ],
23    visibility = ["//visibility:public"],
24)
25"""
26
27def rules_rust_test_deps():
28    """Load dependencies for rules_rust tests
29
30    Returns:
31        list[struct(repo=str, is_dev_dep=bool)]: A list of the repositories
32        defined by this macro.
33    """
34
35    direct_deps = load_arbitrary_tool_test()
36    direct_deps.extend(generated_inputs_in_external_repo())
37
38    maybe(
39        http_archive,
40        name = "libc",
41        build_file_content = _LIBC_BUILD_FILE_CONTENT,
42        sha256 = "1ac4c2ac6ed5a8fb9020c166bc63316205f1dc78d4b964ad31f4f21eb73f0c6d",
43        strip_prefix = "libc-0.2.20",
44        urls = [
45            "https://mirror.bazel.build/github.com/rust-lang/libc/archive/0.2.20.zip",
46            "https://github.com/rust-lang/libc/archive/0.2.20.zip",
47        ],
48    )
49
50    maybe(
51        rules_rust_toolchain_test_target_json_repository,
52        name = "rules_rust_toolchain_test_target_json",
53        target_json = Label("//test/unit/toolchain:toolchain-test-triple.json"),
54    )
55
56    maybe(
57        http_archive,
58        name = "com_google_googleapis",
59        urls = [
60            "https://github.com/googleapis/googleapis/archive/18becb1d1426feb7399db144d7beeb3284f1ccb0.zip",
61        ],
62        strip_prefix = "googleapis-18becb1d1426feb7399db144d7beeb3284f1ccb0",
63        sha256 = "b8c487191eb942361af905e40172644eab490190e717c3d09bf83e87f3994fff",
64    )
65
66    maybe(
67        http_archive,
68        name = "rules_python",
69        sha256 = "778aaeab3e6cfd56d681c89f5c10d7ad6bf8d2f1a72de9de55b23081b2d31618",
70        strip_prefix = "rules_python-0.34.0",
71        url = "https://github.com/bazelbuild/rules_python/releases/download/0.34.0/rules_python-0.34.0.tar.gz",
72    )
73
74    direct_deps.extend([
75        struct(repo = "libc", is_dev_dep = True),
76        struct(repo = "rules_rust_toolchain_test_target_json", is_dev_dep = True),
77        struct(repo = "com_google_googleapis", is_dev_dep = True),
78        struct(repo = "rules_python", is_dev_dep = True),
79    ])
80
81    return direct_deps
82