###############################################################################
# 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.50.1",
)

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.39.0",
)

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",
        "//third_party/rules_rust:Add-extra_rustc_flags-to-module-extension.patch",
    ],
    version = "0.53.0",
)

bazel_dep(name = "zlib")
single_version_override(
    module_name = "zlib",
    version = "1.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.0.0")
bazel_dep(name = "aspect_bazel_lib", version = "2.9.0")
bazel_dep(name = "rules_multirun", version = "0.9.0")
bazel_dep(name = "rules_python", version = "0.36.0")
bazel_dep(name = "rules_cc", version = "0.0.10")
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//proto/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")
