###############################################################################
# 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 = "rules_rust_mdbook", version = RULES_RUST_VERSION)
bazel_dep(name = "zstd", version = "1.5.7")
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")
