xref: /aosp_15_r20/external/bazelbuild-rules_rust/examples/bzlmod/hello_world/MODULE.bazel (revision d4726bddaa87cc4778e7472feed243fa4b6c267f)
1"""bazelbuild/rules_rust - bzlmod example"""
2
3module(
4    name = "hello_world_example",
5    version = "0.0.0",
6)
7
8bazel_dep(name = "platforms", version = "0.0.8")
9bazel_dep(
10    name = "bazel_skylib",
11    version = "1.5.0",
12)
13bazel_dep(
14    name = "rules_rust",
15    version = "0.0.0",
16)
17local_path_override(
18    module_name = "rules_rust",
19    path = "../../..",
20)
21
22# To do third party dependencies, you have multiple options:
23
24# Option 1: Fully transient (Cargo.toml / Cargo.lock as source of truth).
25crate = use_extension(
26    "@rules_rust//crate_universe:extension.bzl",
27    "crate",
28)
29crate.from_cargo(
30    name = "crates",
31    cargo_lockfile = "//third-party:Cargo.lock",
32    manifests = ["//third-party:Cargo.toml"],
33)
34use_repo(crate, "crates")
35crate.annotation(
36    additive_build_file = "//:anyhow.BUILD.bazel",
37    crate = "anyhow",
38    # Defined in additive_build_file.
39    data = [":cargo_toml"],
40    # Optional, you probably don't need this. Defaults to all from_cargo
41    # invocations in this module.
42    repositories = ["crates"],
43    # Optional, you probably don't need this, defaults to "*".
44    version = "*",
45)
46
47# Option 2: Vendored crates
48crate_repositories = use_extension("//third-party:extension.bzl", "crate_repositories")
49use_repo(crate_repositories, "vendor__anyhow-1.0.77")
50