blob: 412128a8d913cda6a71ba1f45bdcb1ec28106e87 [file] [log] [blame]
UebelAndre1fe23152021-01-27 02:30:05 -08001"""A module defining dependencies of the `rules_rust` tests"""
UebelAndre8826d302021-01-21 06:05:17 -08002
UebelAndre998529b2021-08-03 06:10:04 -07003load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
4load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
Javier G. Sogo1b19a462023-09-09 17:42:30 +02005load("//test/generated_inputs:external_repo.bzl", "generated_inputs_in_external_repo")
UebelAndre8826d302021-01-21 06:05:17 -08006load("//test/load_arbitrary_tool:load_arbitrary_tool_test.bzl", "load_arbitrary_tool_test")
UebelAndre92834932023-02-02 08:10:34 -08007load("//test/unit/toolchain:toolchain_test_utils.bzl", "rules_rust_toolchain_test_target_json_repository")
UebelAndre8826d302021-01-21 06:05:17 -08008
UebelAndre998529b2021-08-03 06:10:04 -07009_LIBC_BUILD_FILE_CONTENT = """\
Alex Saveaud7db4d32021-10-29 12:48:40 -070010load("@rules_rust//rust:defs.bzl", "rust_library")
UebelAndre998529b2021-08-03 06:10:04 -070011
12rust_library(
13 name = "libc",
14 srcs = glob(["src/**/*.rs"]),
UebelAndre1aea1a62021-08-24 13:19:31 -070015 edition = "2015",
UebelAndrebddc4bd2022-05-03 06:28:17 -070016 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 ],
UebelAndre998529b2021-08-03 06:10:04 -070023 visibility = ["//visibility:public"],
24)
25"""
26
UebelAndred0a85862021-06-24 08:34:12 -070027def rules_rust_test_deps():
Matt44ffccb2023-12-13 00:52:58 +110028 """Load dependencies for rules_rust tests
UebelAndre8826d302021-01-21 06:05:17 -080029
Matt44ffccb2023-12-13 00:52:58 +110030 Returns:
31 list[struct(repo=str, is_dev_dep=bool)]: A list of the repositories
32 defined by this macro.
33 """
UebelAndre998529b2021-08-03 06:10:04 -070034
Matt44ffccb2023-12-13 00:52:58 +110035 direct_deps = load_arbitrary_tool_test()
36 direct_deps.extend(generated_inputs_in_external_repo())
Javier G. Sogo1b19a462023-09-09 17:42:30 +020037
UebelAndre998529b2021-08-03 06:10:04 -070038 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 )
UebelAndre92834932023-02-02 08:10:34 -080049
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 )
freeformstu7f751cd2023-07-05 07:20:52 -070055
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 )
Matt44ffccb2023-12-13 00:52:58 +110065
66 direct_deps.extend([
67 struct(repo = "libc", is_dev_dep = True),
68 struct(repo = "rules_rust_toolchain_test_target_json", is_dev_dep = True),
69 struct(repo = "com_google_googleapis", is_dev_dep = True),
70 ])
71
72 return direct_deps