1"""A module defining dependencies of the `cargo-bazel` Rust target""" 2 3load("@rules_rust//rust:defs.bzl", "rust_common") 4load("//crate_universe:deps_bootstrap.bzl", "cargo_bazel_bootstrap") 5load("//crate_universe/3rdparty:third_party_deps.bzl", "third_party_deps") 6load("//crate_universe/3rdparty/crates:crates.bzl", _vendor_crate_repositories = "crate_repositories") 7load("//crate_universe/private:vendor_utils.bzl", "crates_vendor_deps") 8load("//crate_universe/tools/cross_installer:cross_installer_deps.bzl", "cross_installer_deps") 9 10def crate_universe_dependencies(rust_version = rust_common.default_version, bootstrap = False, **kwargs): 11 """Define dependencies of the `cargo-bazel` Rust target 12 13 Args: 14 rust_version (str, optional): The version of rust to use when generating dependencies. 15 bootstrap (bool, optional): If true, a `cargo_bootstrap_repository` target will be generated. 16 **kwargs: Arguments to pass through to cargo_bazel_bootstrap. 17 18 Returns: 19 list[struct(repo=str, is_dev_dep=bool)]: A list of the repositories 20 defined by this macro. 21 """ 22 third_party_deps() 23 24 if bootstrap: 25 cargo_bazel_bootstrap(rust_version = rust_version, **kwargs) 26 27 direct_deps = _vendor_crate_repositories() 28 direct_deps.extend(crates_vendor_deps()) 29 cross_installer_deps() 30 return direct_deps 31