blob: de5452dddee29eea23e3f8019442db551a34c7a6 [file] [log] [blame]
"""A module defining dependencies of the `cargo-bazel` Rust target"""
load("@rules_rust//rust:defs.bzl", "rust_common")
load("//crate_universe:deps_bootstrap.bzl", "cargo_bazel_bootstrap")
load("//crate_universe/3rdparty:third_party_deps.bzl", "third_party_deps")
load("//crate_universe/3rdparty/crates:crates.bzl", _vendor_crate_repositories = "crate_repositories")
load("//crate_universe/private:vendor_utils.bzl", "crates_vendor_deps")
load("//crate_universe/tools/cross_installer:cross_installer_deps.bzl", "cross_installer_deps")
def crate_universe_dependencies(rust_version = rust_common.default_version, bootstrap = False, **kwargs):
"""Define dependencies of the `cargo-bazel` Rust target
Args:
rust_version (str, optional): The version of rust to use when generating dependencies.
bootstrap (bool, optional): If true, a `cargo_bootstrap_repository` target will be generated.
**kwargs: Arguments to pass through to cargo_bazel_bootstrap.
Returns:
list[struct(repo=str, is_dev_dep=bool)]: A list of the repositories
defined by this macro.
"""
third_party_deps()
if bootstrap:
cargo_bazel_bootstrap(rust_version = rust_version, **kwargs)
direct_deps = _vendor_crate_repositories()
direct_deps.extend(crates_vendor_deps())
cross_installer_deps()
return direct_deps