###############################################################################
# Bazel now uses Bzlmod by default to manage external dependencies.
# Please consider migrating your external dependencies from WORKSPACE to MODULE.bazel.
#
# For more details, please check https://github.com/bazelbuild/bazel/issues/18958
###############################################################################

# NOTE: When editing this file, also update the lockfile.
#   bazel mod deps --lockfile_mode=update

bazel_dep(name = "platforms")
single_version_override(
    module_name = "platforms",
    patch_strip = 1,
    patches = [
        "//third_party:platforms-add-uefi.patch",
    ],
    version = "0.0.10",
)

bazel_dep(name = "rules_go", repo_name = "io_bazel_rules_go")
single_version_override(
    module_name = "rules_go",
    patch_strip = 1,
    patches = [
        "//third_party/go/patches:rules_go_absolute_embedsrc.patch",
    ],
    version = "0.51.0",
)

bazel_dep(name = "gazelle", repo_name = "bazel_gazelle")
single_version_override(
    module_name = "gazelle",
    patch_strip = 1,
    patches = [
        "//third_party/gazelle:add-prepatching.patch",
    ],
    version = "0.41.0",
)

# rules_rust was split into multiple dependencies. Sadly, this means we have to
# patch each include separately.
bazel_dep(name = "rules_rust")
single_version_override(
    module_name = "rules_rust",
    patch_strip = 1,
    patches = [
        "//third_party/rules_rust:rust-uefi-platform.patch",
        "//third_party/rules_rust:rust-prost-nostd.patch",
        "//third_party/rules_rust:rust-reproducibility.patch",
    ],
    version = "0.56.0",
)

bazel_dep(name = "rules_rust_prost")
single_version_override(
    module_name = "rules_rust_prost",
    patch_strip = 3,
    patches = [
        "//third_party/rules_rust:rust-prost-nostd.patch",
    ],
    version = "0.56.0",
)

bazel_dep(name = "rules_rust_protobuf", version = "0.56.0")
bazel_dep(name = "zlib")
single_version_override(
    module_name = "zlib",
    version = "1.3.1",
)

bazel_dep(name = "buildifier_prebuilt", version = "7.3.1")
bazel_dep(name = "bazel_skylib", version = "1.7.1")
bazel_dep(name = "rules_pkg", version = "1.0.1")
bazel_dep(name = "rules_oci", version = "2.2.0")
bazel_dep(name = "aspect_bazel_lib", version = "2.10.0")
bazel_dep(name = "rules_multirun", version = "0.10.0")
bazel_dep(name = "rules_python", version = "1.0.0")
bazel_dep(name = "rules_cc", version = "0.1.0")
bazel_dep(name = "rules_proto", version = "7.1.0")
bazel_dep(name = "rules_proto_grpc_doc", version = "5.0.1")
bazel_dep(name = "rules_proto_grpc_buf", version = "5.0.1")

# Currently supported version are listed here:
# https://protobuf.dev/support/version-support/
bazel_dep(name = "protobuf", version = "29.2")

# Load musl toolchain Metropolis sysroot tarball into external repository.
musl_sysroot_rule = use_repo_rule("//build/toolchain/musl-host-gcc:sysroot_repository.bzl", "musl_sysroot_rule")

musl_sysroot_rule(
    name = "musl_sysroot",
    snapshot = "//build/toolchain/musl-host-gcc:sysroot.tar.xz",
)

# Register our custom CC toolchains. Order matters - more specific toolchains must be registered first.
# (host_cc_toolchain won't care about //build/platforms/linkmode, but musl_host_toolchain won't
# match anything unless its linkmode is set).
register_toolchains("//build/toolchain/musl-host-gcc:musl_host_toolchain")

register_toolchains("//build/toolchain/llvm-efi:efi_k8_toolchain")

register_toolchains("//build/toolchain:host_cc_toolchain")

# Rust Toolchains
register_toolchains("@rust_toolchains//:all")

# Protobuf Toolchains
register_toolchains("@rules_rust_protobuf//:default_proto_toolchain")

register_toolchains("//build/rust:prost_efi_toolchain")

include("//build/bazel:rust.MODULE.bazel")

include("//build/bazel:go.MODULE.bazel")

include("//build/bazel:oci.MODULE.bazel")

include("//build/bazel:third_party.MODULE.bazel")
