###############################################################################
# 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",
        "//third_party/rules_go:cache-fix.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",
        "//third_party/rules_rust:musl.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 = "openssl")
single_version_override(
    module_name = "openssl",
    patch_strip = 1,
    patches = [
        "//third_party/openssl/patches:force-gnuas.patch",
    ],
    version = "3.3.1.bcr.1",
)

bazel_dep(name = "rules_rust_protobuf", version = RULES_RUST_VERSION)
bazel_dep(name = "rules_rust_mdbook", version = RULES_RUST_VERSION)
bazel_dep(name = "libuuid")
single_version_override(
    module_name = "libuuid",
    patch_strip = 1,
    patches = [
        "//third_party/libuuid/patches:musl-compat.patch",
    ],
    version = "2.39.3.bcr.1",
)

bazel_dep(name = "glib")
single_version_override(
    module_name = "glib",
    patch_strip = 1,
    patches = [
        "//third_party/glib/patches:musl-compat.patch",
    ],
    version = "2.82.2.bcr.5",
)

bazel_dep(name = "rules_python")
single_version_override(
    module_name = "rules_python",
    patch_strip = 1,
    patches = [
        # TODO: Remove if upstream PR is merged
        # https://github.com/bazel-contrib/rules_python/pull/3087
        "//third_party/rules_python:use-usr-bin-env-bash.patch",
    ],
    version = "1.4.1",
)

bazel_dep(name = "rules_oci")
single_version_override(
    module_name = "rules_oci",
    patch_strip = 1,
    patches = [
        "//third_party/rules_oci:use-default-shell-env.patch",
    ],
    version = "2.2.6",
)

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 = "buildifier_prebuilt", version = "8.2.0.2")
bazel_dep(name = "bazel_skylib", version = "1.8.0")
bazel_dep(name = "aspect_bazel_lib", version = "2.19.4")
bazel_dep(name = "rules_multirun", version = "0.12.0")
bazel_dep(name = "rules_cc", version = "0.1.2")
bazel_dep(name = "rules_perl", version = "0.2.4")
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")
bazel_dep(name = "rules_foreign_cc", version = "0.14.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 = "80acaa3e95473ad76c34c6f409b82f3802de9bd2",
    remote = "https://review.monogon.dev/toolchain_cc",
)

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

register_toolchains("//build/toolchain/toolchain-bundle:all")

# Rust config
include("//build/bazel:rust.MODULE.bazel")

# Go dependencies
include("//build/bazel:go.MODULE.bazel")

# OCI Config
include("//build/bazel:oci.MODULE.bazel")

# Third Party dependencies
include("//build/bazel:third_party.MODULE.bazel")

# Toolchain Bundle
include("//build/bazel:toolchain.MODULE.bazel")
