blob: 210fe6451877213ec1e1d444a1769be1d2b72d86 [file] [log] [blame]
"""A module defining dependencies of the `rules_rust` tests"""
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
load("//test/generated_inputs:external_repo.bzl", "generated_inputs_in_external_repo")
load("//test/load_arbitrary_tool:load_arbitrary_tool_test.bzl", "load_arbitrary_tool_test")
load("//test/rust_analyzer/3rdparty/crates:crates.bzl", rust_analyzer_test_crate_repositories = "crate_repositories")
load("//test/unit/toolchain:toolchain_test_utils.bzl", "rules_rust_toolchain_test_target_json_repository")
_LIBC_BUILD_FILE_CONTENT = """\
load("@rules_rust//rust:defs.bzl", "rust_library")
rust_library(
name = "libc",
srcs = glob(["src/**/*.rs"]),
edition = "2015",
rustc_flags = [
# In most cases, warnings in 3rd party crates are not interesting as
# they're out of the control of consumers. The flag here silences
# warnings. For more details see:
# https://doc.rust-lang.org/rustc/lints/levels.html
"--cap-lints=allow",
],
visibility = ["//visibility:public"],
)
"""
def rules_rust_test_deps(is_bzlmod = False):
"""Load dependencies for rules_rust tests
Args:
is_bzlmod (bool): Whether or not the context from which this macro
is called is bzlmod.
Returns:
list[struct(repo=str, is_dev_dep=bool)]: A list of the repositories
defined by this macro.
"""
direct_deps = load_arbitrary_tool_test()
direct_deps.extend(generated_inputs_in_external_repo())
direct_deps.extend(rust_analyzer_test_crate_repositories())
maybe(
http_archive,
name = "libc",
build_file_content = _LIBC_BUILD_FILE_CONTENT,
sha256 = "1ac4c2ac6ed5a8fb9020c166bc63316205f1dc78d4b964ad31f4f21eb73f0c6d",
strip_prefix = "libc-0.2.20",
urls = [
"https://mirror.bazel.build/github.com/rust-lang/libc/archive/0.2.20.zip",
"https://github.com/rust-lang/libc/archive/0.2.20.zip",
],
)
maybe(
rules_rust_toolchain_test_target_json_repository,
name = "rules_rust_toolchain_test_target_json",
target_json = Label("//test/unit/toolchain:toolchain-test-triple.json"),
)
if not is_bzlmod:
maybe(
http_archive,
name = "rules_python",
sha256 = "690e0141724abb568267e003c7b6d9a54925df40c275a870a4d934161dc9dd53",
strip_prefix = "rules_python-0.40.0",
url = "https://github.com/bazelbuild/rules_python/releases/download/0.40.0/rules_python-0.40.0.tar.gz",
)
maybe(
http_archive,
name = "rules_testing",
sha256 = "28c2d174471b587bf0df1fd3a10313f22c8906caf4050f8b46ec4648a79f90c3",
strip_prefix = "rules_testing-0.7.0",
url = "https://github.com/bazelbuild/rules_testing/releases/download/v0.7.0/rules_testing-v0.7.0.tar.gz",
)
direct_deps.extend([
struct(repo = "libc", is_dev_dep = True),
struct(repo = "rules_rust_toolchain_test_target_json", is_dev_dep = True),
])
return direct_deps