blob: 508e498d60cc8e3b8b304ce3fd6672e0027ebfed [file] [log] [blame]
"""Bzlmod module extensions"""
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
load("//basic/3rdparty/crates:crates.bzl", basic_crate_repositories = "crate_repositories")
load("//complex/3rdparty/crates:crates.bzl", complex_crate_repositories = "crate_repositories")
def _rust_example_impl(module_ctx):
# This should contain the subset of WORKSPACE.bazel that defines
# repositories.
direct_deps = []
direct_deps.extend(basic_crate_repositories())
direct_deps.extend(complex_crate_repositories())
http_archive(
name = "libgit2",
build_file = Label("//complex/3rdparty:BUILD.libgit2.bazel"),
sha256 = "d25866a4ee275a64f65be2d9a663680a5cf1ed87b7ee4c534997562c828e500d",
# The version here should match the version used with the Rust crate `libgit2-sys`
# https://github.com/rust-lang/git2-rs/tree/libgit2-sys-0.15.2+1.6.4/libgit2-sys
strip_prefix = "libgit2-1.6.4",
urls = ["https://github.com/libgit2/libgit2/archive/refs/tags/v1.6.4.tar.gz"],
)
direct_deps.append(struct(repo = "libgit2"))
# is_dev_dep is ignored here. It's not relevant for internal_deps, as dev
# dependencies are only relevant for module extensions that can be used
# by other MODULES.
return module_ctx.extension_metadata(
root_module_direct_deps = [repo.repo for repo in direct_deps],
root_module_direct_dev_deps = [],
)
rust_example = module_extension(
doc = "Dependencies for the rules_rust examples.",
implementation = _rust_example_impl,
)