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

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 = "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//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")
