###############################################################################
# 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", version = "1.0.0")
bazel_dep(name = "rules_go", repo_name = "io_bazel_rules_go")
single_version_override(
    module_name = "rules_go",
    patch_strip = 1,
    patches = [
        "//third_party/rules_go:rules_go_absolute_embedsrc.patch",
        "//third_party/rules_go:introduce-all-scope-for-nogo.patch",
    ],
    version = "0.55.1",
)

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

# rules_rust was split into multiple dependencies. Sadly, this means we have to
# patch each include separately.
RULES_RUST_VERSION = "0.61.0"

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

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 = RULES_RUST_VERSION,
)

bazel_dep(name = "rules_rust_protobuf", version = RULES_RUST_VERSION)
bazel_dep(name = "gperf", version = "3.1")
bazel_dep(name = "zlib", version = "1.3.1.bcr.6")
bazel_dep(name = "boringssl", version = "0.20250514.0")
bazel_dep(name = "libcap", version = "2.27")
bazel_dep(name = "glib", version = "2.82.2.bcr.5")
bazel_dep(name = "buildifier_prebuilt", version = "8.2.0.2")
bazel_dep(name = "bazel_skylib", version = "1.7.1")
bazel_dep(name = "rules_pkg", version = "1.1.0")
bazel_dep(name = "rules_oci", version = "2.2.6")
bazel_dep(name = "aspect_bazel_lib", version = "2.13.0")
bazel_dep(name = "rules_multirun", version = "0.12.0")
bazel_dep(name = "rules_python", version = "1.4.1")
bazel_dep(name = "rules_cc", version = "0.1.1")
bazel_dep(name = "rules_proto", version = "7.1.0")
bazel_dep(name = "rules_proto_grpc_doc", version = "5.1.0")
bazel_dep(name = "rules_proto_grpc_buf", version = "5.1.0")

# Currently supported version are listed here:
# https://protobuf.dev/support/version-support/
bazel_dep(name = "protobuf", version = "31.1")
bazel_dep(name = "toolchain_cc_mngn")
git_override(
    module_name = "toolchain_cc_mngn",
    commit = "6e241ef6ebcbdc630d332fa789a1b53b52c27771",
    remote = "https://review.monogon.dev/toolchain_cc",
)

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

register_toolchains("@toolchain_cc_mngn//linux_musl:linux_x86_64_linux_x86_64_musl_static")

register_toolchains("@toolchain_cc_mngn//linux_musl:linux_x86_64_linux_aarch64_musl_static")

register_toolchains("@toolchain_cc_mngn//linux_musl:linux_x86_64_linux_aarch64_musl")

register_toolchains("@toolchain_cc_mngn//efi:linux_x86_64_efi_x86_64")

register_toolchains("@toolchain_cc_mngn//efi:linux_x86_64_efi_aarch64")

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

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

register_toolchains("//build/toolchain/rust-efi: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")
